Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通知tcp客户端服务器关闭_C_Linux_Sockets - Fatal编程技术网

如何通知tcp客户端服务器关闭

如何通知tcp客户端服务器关闭,c,linux,sockets,C,Linux,Sockets,在linux中使用非阻塞(20毫秒周期)TCP连接时,我遇到了一个问题: 当我从服务器端关闭套接字[close(sd)或shutdown(sd,2);close(sd)]时,客户机poll()不会收到POLLHUP事件 当服务器从shell中终止时,将收到POLLHUP 如何在一两个周期内通知客户端?TCP断开连接由POLLIN发出信号,如果正常关闭,read()将返回0,或者-1和适当的错误(errno是EINTR/eWoldBlock以外的任何东西) 有些平台可能会使用POLLHUP发出

在linux中使用非阻塞(20毫秒周期)TCP连接时,我遇到了一个问题:

  • 当我从服务器端关闭套接字[close(sd)或shutdown(sd,2);close(sd)]时,客户机poll()不会收到POLLHUP事件

  • 当服务器从shell中终止时,将收到POLLHUP


如何在一两个周期内通知客户端?

TCP断开连接由POLLIN发出信号,如果正常关闭,read()将返回0,或者-1和适当的错误(errno是EINTR/eWoldBlock以外的任何东西)


有些平台可能会使用POLLHUP发出信号,因此您可能也希望处理这种情况。

TCP断开连接使用POLLIN发出信号,如果正常关闭,read()将返回0,或者-1和适当的错误(errno是EINTR/EWOULDBLOCK以外的任何东西)


有些平台可能会通过POLLHUP发出信号,因此您可能也希望处理这种情况。

如果您对答案感到满意,请将其标记为已接受。如果您对答案感到满意,请将其标记为已接受。您能告诉我SIGHUP与TCP有什么关系,以及在哪些平台上请?@nos:嗯,它谈论的是POLLHUP。不过,没有提到SIGHUP。你能告诉我SIGHUP与TCP有什么关系,以及在哪些平台上吗?@nos:嗯,它谈论的是
POLLHUP
。不过,没有提及
SIGHUP