Linux TCP Stack - 对等重置或断开连接的通知

时间:2012-08-27 14:13:39

标签: linux tcp notifications reset disconnect

我有一个情况 -

在已建立状态下A - > B之间存在TCP连接。 A向B发送几个字节,然后自行终止。 B既不执行send()或recv()。

我想知道是否有办法知道连接已断开。

我知道,对于断开的连接,recv()返回'0'。但是在上面的情况中 - A已经向B发送了一些数据,所以第一个(一个或多个)recv()会返回我发送的数据,最后我会得到recv()== 0.但我想了解一下断开连接,无需从recv-buffer中抽出所有数据。

  1. 我想获得有关传入的FIN / RST数据包的通知
  2. 我已激活keep-alive,所以当合作伙伴未保留keep-alive数据包时,我希望收到通知
  3. 谢谢, 和Sandeep

1 个答案:

答案 0 :(得分:0)

无论您想要检查实时连接,都可以尝试send(fd, buf, 0, 0),即发送0字节的数据。如果连接中断,它将失败。