- ベストアンサー
TCP/IP通信でのコネクションロスト(ソケットエラー)の検知について
インターネット上での対戦ゲームの作成を行なっているところです。 サーバーを挟んでクライアント間で双方向の通信を行なっています。 A → サーバー → B A ← サーバー ← B TCP/IPは信頼性の高い通信方法ということで、データ抜けなどは 心配しなくても良いと聞いています。 もし、データ抜けなどが発生した場合はコネクションロストの状態になると。 実際のプログラミングではソケットを使用しています。 コネクションロストが起きると、ソケットエラーかソケットクローズで検知できます。 実際に例えばクライアントAを強制終了させるとサーバーはただちに ソケットクローズを検知します。 ここで、問題はデータを送っても届かないのに、 ソケットエラーもソケットクローズも起きない状態が発生することです。 これはインターネットの経路上になにか問題が発生したと考えていますが このような状態はタイムアウトなどで監視する以外に検知する方法はないのでしょうか? クライアントはウィンドウズでVB6.0のwinsockを、 サーバーはLinuxを使用しています。 なにかアドバイスをいただければありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
noname#96023
回答No.2
お礼
ありがとうございました。 >すぐにエラーを検出して異常になるよりも、LANケーブルを差し込んだら、そのまま継続してくれるほうが嬉しいわけですからね。 なぜ、すぐにタイムアウトにならないかと思っていたのですが、なるほどと思いました。 >考慮無くやると、アホな結果を生む可能性 実は今、こういう状況で作り直すところなのです。 それでご意見を伺ったしだいです。 参考になりました。ありがとうございました。