http://hp.vector.co.jp/authors/VA023499/soft/sysya/sysya-errormessage.html
の最下段に、
「Bad receive size.」
というエラーが出た場合、
「受信済みのサイズの方が小さい場合は、自動的に継続受信で再試行します。受信済みのサイズの方が大きい場合は、ファイルの先頭から受信し直します。 」
とありますが、追加でデータを受信すると、バイナリデータなどの場合、壊れたりすることはないのでしょうか?
> 追加でデータを受信すると、バイナリデータなどの場合、壊れたりすることはないのでしょうか?
追加で受信して既存ファイルに追記したことが原因で壊れることは無いです。
もちろんクライアント側(SYSYA)もサーバ側も正しくHTTP/1.1のレジュームに対応していて、先の受信もあとの受信も正しいデータを受信できていることが前提ですが。
もっとも受信中にサーバ側からの送信が途絶えるような状況だと、それまで受信したデータ自体も怪しいですし、先の受信で途中までバイナリを受信後、
レジュームしたら「ただいま混雑中です」ページをステータスコード200などで送信してくるようなサーバ(良くあると思いますよ)だと明らかに壊れるので、
再受信の結果ファイルが壊れてたとしても不思議ではないですが。
回答いただきありがとうございます。
とても参考になりました。仕様上は正しくレジュームできるのですね。一応安心致しました。
なお、実用上ですが、
>もっとも受信中にサーバ側からの送信が途絶えるような状況だと、それまで受信したデータ自体も怪しいですし
これについては如何でしょうか?もし、このようなことが起これば、受信が終わった後などにサイズがおかしくなり、ダウンロードエラーが出ないでしょうか?
>レジュームしたら「ただいま混雑中です」ページをステータスコード200などで送信してくるようなサーバ
これについても、サイズエラーが出でそうなきがしますがどうでしょうかね?