【发布时间】:2013-07-25 04:40:09
【问题描述】:
我使用InternetSetFilePointer 和InternetReadFile 的组合来支持可恢复下载。所以当我开始下载一个文件时,我会检查我们是否已经拥有它的一部分,并使用我们拥有的大小调用InternetSetFilePointer,然后我开始阅读。这行得通……但是,这是我的观察结果:
如果我已经下载了 90% 的文件,并且下载了 2 分钟,那么当我恢复时,第一次调用 InternetReadFile 大约需要 2 分钟返回!我只能得出结论,在幕后,它只是从头开始下载文件,把所有东西都扔掉,直到我给InternetSetFilePointer,然后它带着“下一个”数据返回。
所以问题是:
1) WinInet 是“模拟”InternetSetFilePointer,还是真的将该信息提供给服务器?
2) 有没有办法让 WinInet 真正跳到所需的搜索点,假设 HTTP 服务器支持这样做?
我正在下载的服务器是 Amazon S3 服务器,我 99.9% 肯定支持恢复。
【问题讨论】:
标签: download wininet resume-download