epoll_wait在TCP套接字fd上缺少EPOLLIN事件

时间:2016-04-12 06:44:26

标签: sockets io linux-kernel kernel epoll

在服务器端:我使用epoll_wait来监视TCP套接字上可能的读取IO。 在客户端:我有一个单线程应用程序写入连接到服务器的套接字。

问题是,有时epoll_wait无法识别即使从客户端发送新消息后仍有新的IO要读取。 (我确认该消息确实是由服务器使用wireshark收到的)所以客户端正在等待来自服务器的响应。 但是:如果我终止了客户端连接,epoll_wait会收到通知!

最初我使用EPOLLET并认为这将是一个问题。但是在删除EPOLLET之后这个问题仍然存在。

我可以使用任何工具来调试吗? (例如,在服务器进程之外,确认服务器套接字队列上有IO,但epoll_wait不处理它?)任何关于如何调试它的想法或指导将不胜感激。

0 个答案:

没有答案