-1

发生超时时,有一种简单的方法可以从服务器中踢出客户端吗?套接字是 TCP

4

2 回答 2

2

只是close(2)文件描述符并停止从中读取。

于 2012-08-11T09:32:20.810 回答
0

术语是模糊的。您通常可以通过启用SO_LINGER带有 time out of 的选项来强制服务器 TCP 堆栈重置连接0,然后关闭套接字。下面的示例(无错误检查)。

struct linger lo = { 1, 0 };
setsockopt(sock, SOL_SOCKET, SO_LINGER, &lo, sizeof(lo));
shutdown(sock, SHUT_RDWR);
close(sock);

如果您确定没有重复,shutdown则不需要显式调用。sock

于 2012-08-11T09:59:12.410 回答