如何在Linux上的C中检测套接字上的关闭等待?
我正在编写TCP客户端,我想在连接中断时立即重新连接(即服务器重新启动)。我想尽快重新启动连接,即使没有数据通过这个套接字发送。我在netstat中看到连接处于关闭等待状态,但select、getsockopt或getpeername没有错误。 我知道我可以尝试向套接字写入内容,但此连接仅用于读取。来自: 返回值 这些调用返回接收的字节数,如果发生错误,则返回-1。对等方执行有序关机后,返回值将为0如何在Linux上的C中检测套接字上的关闭等待?,c,linux,sockets,status,C,Linux,Sockets,Status,我正在编写TCP客户端,我想在连接中断时立即重新连接(即服务器重新启动)。我想尽快重新启动连接,即使没有数据通过这个套接字发送。我在netstat中看到连接处于关闭等待状态,但select、getsockopt或getpeername没有错误。 我知道我可以尝试向套接字写入内容,但此连接仅用于读取。来自: 返回值 这些调用返回接收的字节数,如果发生错误,则返回-1。对等方执行有序关机后,返回值将为0 CLOSE\u WAIT表示从对等方接收到FIN。这将导致select()报告套接字可读,然后r
CLOSE\u WAIT
表示从对等方接收到FIN
。这将导致select()
报告套接字可读,然后recv()
将返回0。这就是手册页所指的“有序关闭”。