-1

我需要在 C# 中以最大可用下载速度下载。

FlashGet、IDM 和其他下载管理器似乎都可以。

4

3 回答 3

3

没什么特别的,他们只是打开多个下载连接到同一个文件并使用分段下载,因此每个连接从文件中提取不同范围的字节。

有关更多信息,请参见例如 - http://www.ehow.com/how-does_4615524_download-accelerator-work.html

对于 C# 方面,您可能希望查看现有的 .NET 项目,例如 - http://www.codeproject.com/Articles/21053/MyDownloader-A-Multi-thread-C-Segmented-Download-M

于 2012-09-25T13:01:46.907 回答
3

神奇之处在于多重连接和 httpRange标头

假设文件大小为 100MB。您计划打开 10 个连接。因此,对于每个连接,您将下载 10Mb。现在打开一个 http 连接并开始下载相同的文件,但 10 个连接将分配给 10 个不同的段。

连接 1 发送Range: bytes=0-1048575

连接 2 发送Range: bytes=1048576-2097151

等等

于 2012-09-25T13:09:30.060 回答
1

您必须在 TCP 协议中设置窗口大小。但是.net 不支持这个未来

于 2012-10-20T05:20:39.477 回答