为什么epoll_wait(),返回和TCP连接超时在5s~10s

时间:2011-12-26 13:53:19

标签: linux tcp network-programming tcpclient epoll

我创建了一个非阻塞套接字,然后使用epoll来管理套接字。我没有在epoll_wait设置超时。但是我发现epoll在5s到10s之间返回,然后我在getsockopt上查看SO_ERROR,连接发现超时。为什么要在这么短的时间内抽出时间?

我尝试使用工具来限制TCP包。场景是这样的:

当我的客户端发送SYN以连接到服务器时。但服务器无法在5s到10s内发回ACK。然后epoll_wait返回。并查看SO_ERROR。我得到了EIMTEDOUT

我无法理解为什么超时时间在5s到10s之间如此短暂。是我的客户的问题还是epoll

1 个答案:

答案 0 :(得分:1)

我最近发布了一个类似的question请参阅接受的答案,该答案解释了如何通过Linux内核计算TCP连接超时值。如果您碰巧在同一台计算机上安装了客户端/服务器,则很可能具有较短的超时值。如果您希望服务器花费的时间比接受连接的时间长,您可能需要自己明确设置超时值。