gpt4 book ai didi

c - 检测 TCP 中的其他对等方已关闭

转载 作者:行者123 更新时间:2023-11-30 17:54:13 25 4
gpt4 key购买 nike

我正在通过 TCP 构建一个应用程序,为了检测另一端已关闭,我需要实现一个心跳机制,让客户端不断发送伪 ping 数据包。我做了一些测试,发现当另一端宕机时,读取的字节数为0。

所以我可以不做这样的事情吗?:

If  FD is set, then 
read from fd
if read bytes is 0 then
Assume socket is closed, close fd and do a reconnect.

这对我有用,所以我不明白保持事件状态的必要性,我对服务器有相同的逻辑,并且它对我有用。

我的思维正常吗?

最佳答案

读返回0的原因是对端发送FIN。如果您和对等方之间存在一些网络问题(网络电缆已拔出),您的应用程序如何在没有保持连接的情况下检测到它?读取会阻塞很长时间(取决于您的操作系统环境)。

关于c - 检测 TCP 中的其他对等方已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15063764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com