0

EPOLLOUT を使用した epoll TCP | EPOLLET は 1 回のイベントを取得し、最初のイベントを取得した後にデータを送信してもタイムアウトになります。

UDP では、epoll は新しいデータを送信した後も EPOLLOUT イベントを取得し続けます。

この問題について説明していただけますか?

4

1 に答える 1

2

EPOLLETはエッジトリガーモードです。つまり、状態遷移のみを通知します。この場合、ファイル記述子が書き込み不可から書き込み可能になると通知されます。そして、それを書き込み可能にしない唯一の方法は、発信バッファをいっぱいにすることです。したがって、EAGAINを取得するまで送信を続ける必要があります。その後、通知を待ちます。

于 2013-02-20T13:08:09.347 に答える