我需要在C#中以最大可用下载速度下载。
FlashGet,IDM和其他下载管理器似乎能够。
答案 0 :(得分: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
答案 1 :(得分:3)
神奇之处在于多重连接和http Range
标题。
假设文件大小为100MB。您打算打开10个连接。因此,对于每个连接,您都要下载10Mb。现在打开一个http连接并开始下载相同的文件,但是10个连接将分配给10个不同的段。
连接1发送Range: bytes=0-1048575
连接2发送Range: bytes=1048576-2097151
等等
答案 2 :(得分:2)
您必须在TCP协议中设置窗口大小。但是这个未来不是.net
的支持