クライアントはパッケージをサーバーにループ送信します。クライアントプログラムはSIGPIPEをキャッチしません。(クライアントOSはubuntuサーバー12.04 LTSです)
私は次のテストを行います:
3回のハンドシェイクが終了した後。次に、クライアントはいくつかのパッケージをサーバーに送信します。サーバーは通常のパッケージを受け取ることができます。
それから私は突然サーバープロセスを殺します。
クライアントプロセスが停止しています。しかし、「壊れたパイプ」というログが表示されません。
バッシュは死んだ原因を報告すると思います。
プロセスが停止した後、bashが「Brokenpipe」ログを印刷しないのはなぜですか?
しかし、私はgdbを使用してプロセスを開始し、上の手順を繰り返します。プロセスが停止し、gdbは次のログを表示します。
「プログラム受信信号SIGPIPE、パイプの破損。」