如何通知tcp客户端服务器关闭
在linux中使用非阻塞(20毫秒周期)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发出
- 当我从服务器端关闭套接字[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
。