TCP客户端服务器使用epoll(EPOLLOUT | EPOLLET),EPOLLOUT事件只触发一次?

时间:2013-02-20 13:03:40

标签: c

epoll TCP与EPOLLOUT | EPOLLET获取事件一次,即使我在收到第一个事件后发送数据也会超时。

在UDP epoll中,在发送新数据后不断获取EPOLLOUT事件。

你能解释这个问题吗?

1 个答案:

答案 0 :(得分:2)

EPOLLET是边缘触发模式,这意味着它只会通知您状态转换。在这种情况下,当文件描述符从写入可写时,它将通知您。使其不可写的唯一方法是填充传出缓冲区。因此,您需要继续发送,直到获得EAGAIN,然后您将等待通知。