2013-07-25 79 views
0

我使用InternetSetFilePointerInternetReadFile的組合來支持可恢復的下載。所以當我開始下載一個文件時,我會檢查是否已經有一部分文件,然後用我們所擁有的大小調用InternetSetFilePointer,然後我開始閱讀。這工作...但是,這是我的觀察:WinInet可以在不重新開始的情況下恢復文件下載嗎?

如果我已經下載了90%的文件,並花了2分鐘這樣做,當我恢復時,第一次撥打InternetReadFile需要大約2分鐘的回報!我只能得出結論,在幕後,它只是簡單地從頭開始下載文件,拋出一切,直到我給出的點InternetSetFilePointer,然後它返回「下一個」數據。

所以問題是:

1)不WinInet的「模擬」 InternetSetFilePointer,或者它真的給該信息到服務器?

2)有沒有辦法讓WinInet真正跳到所需的查找點,假設HTTP服務器支持這樣做?

我從下載的服務器是Amazon S3服務器,我99.9%確實支持簡歷。

回答

0

正確的方式做到這一點終於在一些擴展搜索止跌回升,這裏是關於它的好文章的鏈接:

http://www.clevercomponents.com/articles/article015/resuming.asp

基本上,做正確的HTTP斷點續傳,你需要使用「範圍」HTTP標頭,這樣服務器就可以正確地爲您的請求分配資源。

相關問題