检测非阻塞套接字中的空闲连接

时间:2018-08-10 14:35:18

标签: c sockets linux-kernel network-programming nonblocking

我正在编写一个TCP服务器,该服务器使用无阻塞套接字和epoll()进行I / O复用。我想检测空闲连接,以便关闭它们。我不能将setsockopt与Netcat一起使用,因为套接字不会阻塞。我们如何在无阻塞套接字上设置超时? 这与我的另一个问题有关:Time out idle connections in epoll based server 如果出现重复帖子,请告诉我,我将删除此问题或其他问题。

1 个答案:

答案 0 :(得分:2)

在您的套接字上使用计时器。您使用的事件循环库应提供计时器。

或者,您可以有一个全局计时器,每分钟触发一次。在此计时器回调中,您将检查每个客户端连接的上次活动时间,并断开一段时间未活动的客户端连接。