此问题在此处已有答案:
Detecting TCP Client Disconnect(10个答案)20天前关闭。我知道这个问题已经讨论过很多次了,但是我没有在Unix上的C / C++中检测到套接字是否断开连接。有没有什么方法可以做到这一点?
qnakjoqk1#
我假设套接字可能被对等体关闭。这完全取决于你想在哪里检测断开。如果你在阻塞recv:manpage这些调用返回接收到的字节数,如果发生错误则返回-1。如果发生错误,则将errno设置为指示错误。当流套接字对等体执行有序关闭时,返回值将为0(传统的“文件结束”返回)。如果你想知道send:manpage成功时,这些调用返回发送的字节数。错误时,返回-1,并适当地设置errno。
recv
send
1条答案
按热度按时间qnakjoqk1#
我假设套接字可能被对等体关闭。
这完全取决于你想在哪里检测断开。
如果你在阻塞
recv
:manpage这些调用返回接收到的字节数,如果发生错误则返回-1。如果发生错误,则将errno设置为指示错误。
当流套接字对等体执行有序关闭时,返回值将为0(传统的“文件结束”返回)。
如果你想知道
send
:manpage成功时,这些调用返回发送的字节数。错误时,返回-1,并适当地设置errno。