使用HttpWebRequest上传文件时,对请求流的前两次写入几乎立即完成。我认为必须有某种缓冲发生,所以我禁用了所以我做了这个
_req.AllowWriteStreamBuffering = false;
但它没有任何区别。
这有点烦人,因为我通过将最后10个写入速度平均在一起来衡量上传速度,所以首先我的应用程序显示出极快的速度,然后再降低到50kbps左右。
如果我可以从第一次写入开始测量速度,那就太好了。
有什么想法吗?
答案 0 :(得分:1)
TCP堆栈很可能很快从应用程序中获取初始写入窗口。它是在后台发送数据(在立即接受之后)。
AllowWriteStreamBuffering
告诉HttpWebRequest
不要缓冲。它没有告诉TCP要做什么。
答案 1 :(得分:0)
USR是正确的。
还应该补充一点,这可能与TCP的工作方式有关。
它本可以将初始数据包背靠背发送,并且在发生故障的交付时降低速度以适应网络问题,之后它可能会再次缓慢地提高速度。
不知道您使用的TCP版本或您的网络状况我只能猜测