UNIX C BSDソケットTCP_KEEPALIVEソケットが壊れているとマークされているかどうかを確認する方法

c keep-alive sockets socketserver
UNIX C BSDソケットTCP_KEEPALIVEソケットが壊れているとマークされているかどうかを確認する方法

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

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

  0  1


ベストアンサー

ソケットからのread()。

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

2


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

1


タイトルとURLをコピーしました