我正在编写一个TCP服务器,该服务器使用无阻塞套接字和epoll()进行I / O复用。我想检测空闲连接,以便关闭它们。我不能将setsockopt与Netcat
一起使用,因为套接字不会阻塞。我们如何在无阻塞套接字上设置超时?
这与我的另一个问题有关:Time out idle connections in epoll based server
如果出现重复帖子,请告诉我,我将删除此问题或其他问题。
答案 0 :(得分:2)
在您的套接字上使用计时器。您使用的事件循环库应提供计时器。
或者,您可以有一个全局计时器,每分钟触发一次。在此计时器回调中,您将检查每个客户端连接的上次活动时间,并断开一段时间未活动的客户端连接。