を使用してC#.Netソケットを構成しました
m_clientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, Convert.ToInt32(True))
m_clientSocket.IOControl(IOControlCode.KeepAliveValues, SIO_KEEPALIVE_VALS, result)
私の設定では、30 秒ごとに送信し、最初の確認応答が受信されない場合は 10 秒ごとに送信します。
接続が確立されたときに、キープアライブとキープアライブ ack フラグがサーバーに送受信されるのを確認できます。
接続が切断されると、キープアライブが送信され、確認応答が受信されないことがわかります。送信されているキープ アライブの動作が、設定に合わせて変更されていることがわかります。つまり、30 秒ごとではなく、10 秒ごとに送信されています。
ブレークに応答できるように、何らかのイベントが発生することを期待していました (つまり、ソケットをシャットダウンしてから、ソケットのリサイクルを開始します)。
キープアライブが接続が切断されていることに気付いたという事実を理解する方法を誰か教えてもらえますか?
ありがとうアディ