libevent のドキュメントから、TCP セグメントがリモート ピアから受信されると、EV_READ イベントが生成されることがわかりました。次のシナリオで何が起こるか
- ソケットの読み取りイベントと書き込みイベントの両方に登録されているノンブロッキング アプリケーション
- シナリオ A : アプリケーションがイベントを待機しています。リモートからFINを取得し、EV_READイベントが生成され、アプリケーションが読み取り(またはrecv)を実行して0を取得します
- シナリオ B: アプリケーションがデータを送信しています。送信の実行中に、リモートから FIN を取得します。アプリケーションは EPIPE を取得しますか (私はそう思います)。アプリケーションが EPIP を取得するのと同じ FIN に対して生成される EV_READ イベントもありますか?
関連する質問として、send と write がthisで言及されているように類似している場合、ECONNRESET がマニュアル ページhereのように write で生成されず、man ページhereで説明されているように send で生成されるのはなぜでしょうか。
ローカル送信が ECONNRESET を返すようにリモート ピアを作成するにはどうすればよいですか。回答ありがとうございます