TCP ソケットを使用してあるプロセッサから別のプロセッサにファイルを転送する C++ アプリケーションがあります。アプリケーションは信頼性の低いネットワーク上で実行されるため、接続が失われたり回復したりしたときに転送を続行することが重要です。ACE を使用して、Windows または Linux でアプリケーションを実行できるようにしています。
現在、転送を開始して 2 つのプロセッサ間のネットワーク接続を切断した場合、約 20 秒以内に再接続すると、転送が回復し、すべて正常に動作します。20 秒以内に接続が再確立されない場合、接続がリセットされたことを示す Windows エラー 10054 が表示されます。その時点でソケットはなくなり、接続が再確立されると転送は再開されません。接続がいつタイムアウトになるかを制御できるように、それをオーバーライドする方法はありますか?
編集: これは Windows の問題のようです。Linux VM から Windows ボックスにファイルを送信しようとしました。転送中にネットワーク ケーブルを 5 分以上外しました。再接続すると、転送は中断したところから再開され、完了しました。