我正在写一个互联网测速仪。我想在不将远程文件保存到文件或内存的情况下测量网速-我需要获取数据并忘记它,所以看起来WebClient和StreamReader对它不好(也许我应该继承它们并覆盖一些私有方法)。怎么做呢?
发布于 2013-07-15 07:39:10
我认为,在编写这样的系统时,您还应该准确地选择要下载的文件大小。无论如何,如果文件的“非常大”或“无限”大小有问题,您可以下载文件的某些部分。您也许可以使用HttpWebRequest.AddRange http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.addrange.aspx
发布于 2013-07-15 08:42:56
您可以使用System.Net.WebRequest测量吞吐量,在读取数据时使用异步调用来捕获数据。
WebRequest.BeginGetResponse的MSDN示例代码显示了一种方法,用于在接收数据时使用异步方法从远程文件读取数据。该示例将响应数据存储在StringBuilder中,但是您可以跳过这一步,因为您实际上对数据本身并不感兴趣。
我在他们的示例中添加了一些计时代码,并针对几个大型文件下载对其进行了测试,似乎可以完成您需要的工作。
https://stackoverflow.com/questions/17644391
复制相似问题