質問: お世話になります。 TCPソケットについての質問です。 レスポンス速度確保のため、ソケットのコネクションを常時接続にしたままで処理を行い、何らかの原因で、コネクションが切断された場合、再接続を行うようにしたいのですが、実現可能でしょうか?クライアントはWindows10 C#、サーバーは未定です。 再接続時のサーバー再起動も避けたいです。
回答: TCP Keep Aliveは名前の通り接続を持続させるものとしてよく知られています。実はそれだけでなく、切断検出にも使えます。 C#であればSocket.SetSocketOptionメソッド.aspx)で設定できます。 > > 再接続時のサーバー再起動も避けたいです。 > > > これはサーバーの実装次第であり、クライアントでは制御できません。 > > Keep Aliveは、Linuxにも実装されていますでしょうか? > > > Linuxに限らずほぼ全ての通信機器で実装されています。(そうでないと応答も受け取れないためKeep Aliveを有効にした瞬間、無応答で切断扱いされてしまいます。)