私はしばらくの間、ポーリング TCP デーモンに取り組んできました。最近、ノンブロッキング ソケットが send() または recv() 中に EWOULDBLOCK エラーをスローすることがあるという記事を読みました。私の理解では、recv() が EWOULDBLOCK をスローする場合、これは (通常) 受け取るものが何もないことを意味します。しかし、私がはっきりしていないのは、どのような状況で send() が EWOULDBLOCK をスローするのか、そしてそのようなイベントを処理するための適切な手順は何でしょうか?
send() が EWOULDBLOCK をスローした場合、デーモンは単純にそのイベントから次のイベントに移動する必要がありますか? epoll のようなポーリング インターフェイスを使用すると、記述子が書き込み可能になったときに新しいイベントが発生しますか?