epoll 检测用户断开连接的最佳方法

cod*_*ons 4 epoll

我正在使用 epoll 进行网络编程。我想知道检测用户断开连接的最佳方法。现在,我使用带超时的 select 来查看接收缓冲区中是否有信号,并且在一定时间内没有信号,然后关闭套接字连接。

我认为可能还有其他更适合epoll而不是使用select的东西。

提前致谢..

小智 5

您仍然可以使用 epoll,并使用 epoll_wait 中的超时参数来检测超时。

如果您有一个 TCP 会话并想要检测远程对等方何时关闭连接,您可以注册接收事件EPOLLRDHUP,或者您可以通过获取errno == EAGAIN何时接收EPOLLIN事件并尝试从关闭的套接字读取(非阻塞)来检测它。