1

我正在写一个互联网速度测量器。我想在不将远程文件保存到文件或内存的情况下测量互联网速度 - 我需要获取数据并忘记它,所以 WebClient 和 StreamReader 似乎不适合它(也许我应该继承它们并覆盖一些私有方法)。怎么做?

4

2 回答 2

3

我认为在编写这样的系统时,您还应该准确选择要下载的文件大小。无论如何,如果“非常大”或“无限”大小是一个问题,您也许可以下载部分文件。您也许可以使用 HttpWebRequest.AddRange http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.addrange.aspx

于 2013-07-14T23:39:09.840 回答
1

您可以使用System.Net.WebRequest异步调用来测量吞吐量,以便在读取数据时捕获数据。

WebRequest.BeginGetResponse的 MSDN 示例代码显示了一种使用异步方法在接收远程文件时从远程文件读取数据的方法。该示例将响应数据存储在 a 中StringBuilder,但您可以跳过它,因为您实际上对数据本身并不感兴趣。

我在他们的示例中添加了一些计时代码,并针对几个大文件下载对其进行了测试,似乎可以完成您需要的工作。

于 2013-07-15T00:42:56.350 回答