TCPソケットを介してクライアントとサーバー間の通信をテストしています。私はCでサーバーを書いています。私はLinuxマシンでそれを実行しています。私はnc
をテスト用のクライアントとして使用しています。クローズドソケットの2回目の送信時にのみ壊れたパイプ
サーバは、クライアントとの最初のメッセージ交換後に、何も応答せずにクライアントに定期的にメッセージを送信します( )。私は、クライアントを殺す場合
、私は、サーバーによって行わ最初send()
が EPIPE
エラーで失敗しますが、これが唯一のクライアントが去った後に、第2 send()
で判明していることを期待して! 最初のsend()
は、クライアントを殺した後、1100バイトを(私が閉じたと仮定して)正常に送信することができます。次のsend()
操作は、ex3ct21として、EPIPE
で終了します。
私にこの現象を説明できる人がいますか? TCP/IPスタックに書き込んで、できるだけ配信できるようにするためには、スタックの最大数は ですか? もしそうなら、どのように接続状態を確認できますか?ピアがまだそこにいることを確認する。
あなたの答えを、ありがとう、ありがとう、ありがとう。残念ながら私のLinuxマシン上のコマンドはそれをサポートしていないので、あなたが私に提案したncオプションをテストすることはできません。ところで、あなたが私に指摘した文書とあなたが私に与えた説明は、明確かつ有用です。ありがとう! – Igor