我研究了很多,我找到了计算它的方法,但我不相信
请帮我解决一下怎么办? :(
那是我的代码
while (sum < length)
{
stopWatch.Restart();
if (length - sum > packetSize)
{
count = fileStream.Read(buffer, 0, packetSize);
Send(socket_File, buffer);
}
else
{
buffer = new byte[length - sum];
count = fileStream.Read(buffer, 0, length - sum);
Send(socket_File, buffer);
}
stopWatch.Stop();
sum = sum + count;
SendFile.Downloaded = sum;
SendFile.Transfer_rate = ((sum * 8) / stopWatch.ElapsedMilliseconds).ToString();//kbps
}
答案 0 :(得分:2)
一些随机点:
答案 1 :(得分:0)
我不相信
为什么不呢?在您确定问题之前,没有人可以解决问题。
然而,您的复制代码完全错误。您假设读取填充缓冲区。你不能假设使用TCP。
if (length - sum > packetSize)
{
count = fileStream.Read(buffer, 0, packetSize);
}
else
{
count = fileStream.Read(buffer, 0, length - sum);
}
Send(socket_File, buffer, count);
当然,秒表的开始和停止以及打印输出应该在循环之外,否则你只需对各个读/写对进行计时。