1

C サーバーソケットに TCP_KEEPALIVE パラメータを実装しようとしていますが、ソケットが壊れているとマークされているかどうかを確認する方法がわかりません。キープアライブを行うようにソケットを構成するためのこのチュートリアルに従いましたが、「ACK応答が9回連続して受信されない場合、接続は切断されているとマークされます」と表示されます。私の質問は、ソケットが壊れているとマークされていることをどのように知ることができますか?

チュートリアル: http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/

4

2 に答える 2

2

read() ソケットから。

ソケットが壊れている場合、 read は -1 を返します。

于 2010-09-15T18:10:50.463 に答える
1

接続が切断されているとカーネルが判断した場合、ソケットとの間で送受信しようとするとエラーが発生します。ピアが自発的に接続を終了する「通常の」ケースを処理するために、送受信に関する適切なエラー処理を既に行っている必要があります。したがって、「余分な」エラー処理コードは必要ありません。

于 2010-09-15T18:16:54.090 に答える