0

InternetSetFilePointer、およびの組み合わせを使用してInternetReadFile、再開可能なダウンロードをサポートしています。そのため、ファイルのダウンロードを開始するときは、既にその一部があるかどうかを確認し、持っているファイルInternetSetFilePointerのサイズを使用して呼び出してから、読み取りを開始します。これは機能します...しかし、ここに私の観察があります:

ファイルの 90% をダウンロードし、ダウンロードに 2 分かかった場合、再開すると、最初の呼び出しにInternetReadFile約 2 分かかります。舞台裏では、ファイルを最初からダウンロードし、 に与えた時点までのすべてを捨ててInternetSetFilePointer、「次の」データを返すだけだと結論付けることができます。

質問は次のとおりです。

1) WinInet は「シミュレート」InternetSetFilePointerしますか、それとも実際にその情報をサーバーに提供しますか?

2) HTTP サーバーがサポートしていると仮定して、WinInet を目的のシーク ポイントまでスキップさせる方法はありますか?

ダウンロード元のサーバーは Amazon S3 サーバーで、99.9% 確実にレジュームをサポートしています。

4

1 に答える 1

0

これを行う適切な方法は、いくつかの拡張検索で最終的に判明しました。これについての優れた記事へのリンクを次に示します。

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

基本的に、正しい HTTP レジュームを行うには、「Range」HTTP ヘッダーを使用して、サーバーがリクエストのリソースを正しく配分できるようにする必要があります。

于 2013-07-25T20:30:53.147 に答える