ソケットがピアによって閉じられた後でも、poll() システム コールが POLLIN イベントを返すことがわかります。POLLIN と POLLERR の両方が設定されています。これは、read() 呼び出しが -1 を返した後でも発生し続けます。
私のロジックは、POLLIN がない場合にのみ POLLERR を処理し、ソケットが切断される前に既に到着したパケットを確実に読み取るようにします。その結果、POLLIN は常に設定されているため、POLLERR を処理することはありません。
ソケットエラーの後に poll() が POLLERR とともに POLLIN を返すのはなぜですか? そして、このシナリオをどのように処理する必要がありますか。
ありがとう!