c - 检测连接

标签 c sockets

我有一个服务器(在Windows上的c中)只是监听许多套接字。 我必须检测其中一些套接字是否在超过 xx 分钟后没有发送数据。 在这种情况下,我必须关闭该特定连接。

我研究了keepalive参数,但我还不知道如何实现这个要求。

谢谢 罗萨里奥

最佳答案

定义一个struct,其中包含套接字句柄和该套接字上上次接收数据的时间戳。当客户端连接时,将其放入列表/数组中并设置时间戳。当客户端断开连接(或关闭它)时,在列表/数组中找到该套接字并将其删除。每次收到新数据时,在列表/数组中找到该套接字并更新其时间戳。然后,您可以定期循环该列表/数组以查找过期的时间戳。

关于c - 检测连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874193/

相关文章:

c - 用于分配偶数和奇数的数组

c - 为什么 fgetc 太慢了?

c++ - Boost ASIO async_accept 编译失败

c - 套接字中的非阻塞与 select() 调用

c - 重新分配第二维

c++ - 计时器和 pthreads (POSIX)

c - 列出连接到 Windows 的所有可用网络

Python 多进程队列 get() block

java - (Java多客户端服务器)客户端关闭套接字并且服务器写入客户端时也不异常(exception)

Java:列表未正确通过套接字发送?