我正在使用epoll编写媒体服务器。所有fds都设置为非阻塞,并且我正在使用边缘触发事件。我知道对于EPOLLIN,我需要循环读取fd,直到返回EAGAIN。但是写入呢? 当我想要写入时,我将数据排队,并在fd上设置EPOLLOUT | EPOLLIN | EPOLLET。当EPOLLOUT...
我对基于事件的编程还不是很熟悉。我正在尝试使用epoll的边缘触发模式,它似乎只会通知已准备好进行读/写操作的文件(与水平触发模式相反,后者会通知所有已准备好的文件,无论它们是否已经准备好或者刚刚准备好)。 对我来说不清楚的是:在边缘触发模式下,当我没有执行epoll_wait时,是否会通知...
此外,还可以参考这个问题,目前还没有得到答案。 EPOLLHUP的含义存在很多混淆,即使在man和内核文档中也是如此。人们似乎认为当对本地关闭写入的描述符(即shutdown(SHUT_WR))进行轮询时,即与对等端引起EPOLLRDHUP的相同调用时,会返回它。但是这是不正确的,在我的实验...