Unix Network Programmingによると、ソケットが (FIN パケットの後) 閉じたソケットに 2 回書き込むと、最初は送信に成功しましたが、他のホストから RST パケットを受信しました。ホストは RST を受信するため、ソケットは破棄されます。したがって、2 回目の書き込みでは、SIGPIPE シグナルが受信され、EPIPE エラーが返されます。
ただし、send man ページでは、ECONNRESET が返される場合があります。これは、RST パケットが受信されたことを意味します。ECONNRESET が返されると、シグナルは返されません。
ECONNRESET が返される可能性があるのはどのような場合ですか? この場合、なぜ SIGPIPE シグナルがないのですか?
注: I similar question hereを確認しました。ただし、Linux コンピューターで実行すると、send は ECONNRESET ではなく EPIPE エラーを返しました。