gpt4 book ai didi

linux - 如何知道 Socket 客户端断开连接?

转载 作者:太空狗 更新时间:2023-10-29 12:38:04 26 4
gpt4 key购买 nike

我正在 Linux 架构中进行编码。我对套接字服务器和客户端有疑问。我制作了一个示例代码,其中服务器继续接受连接并且客户端连接到服务器。如果有人以某种方式拔掉了网络电缆,那么我正在断开客户端(客户端套接字与 PC 断开连接),而在服务器端连接仍然存在,因为我无法通知客户端已断开连接,因为网络已拔掉。

我怎么知道客户端断开连接了?

谢谢,尼尔

最佳答案

要么需要在socket上配置keepalive,要么发送应用层的心跳消息,否则监听端会无限期的等待数据包的到来。如果您控制协议(protocol),应用程序级别的心跳可能会更容易。作为有利的一面,这两种解决方案都有助于保持网络中 NAT 网关之间的连接。

查看此答案:Is TCP Keepalive the only mechanism to determine a broken link?

另请参阅此 Linux 文档:http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/#programming

关于linux - 如何知道 Socket 客户端断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956940/

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