检测套接字连接何时断开C / C++ Unix [重复]

gcmastyq  于 11个月前  发布在  Unix
关注(0)|答案(1)|浏览(101)

此问题在此处已有答案

Detecting TCP Client Disconnect(10个答案)
20天前关闭。
我知道这个问题已经讨论过很多次了,但是我没有在Unix上的C / C++中检测到套接字是否断开连接。有没有什么方法可以做到这一点?

qnakjoqk

qnakjoqk1#

我假设套接字可能被对等体关闭。
这完全取决于你想在哪里检测断开。
如果你在阻塞recvmanpage
这些调用返回接收到的字节数,如果发生错误则返回-1。如果发生错误,则将errno设置为指示错误。
当流套接字对等体执行有序关闭时,返回值将为0(传统的“文件结束”返回)。
如果你想知道sendmanpage
成功时,这些调用返回发送的字节数。错误时,返回-1,并适当地设置errno。

相关问题