gpt4 book ai didi

c++ - 服务器套接字如何使用C++在Windows中拔出网络电缆

转载 作者:可可西里 更新时间:2023-11-01 10:55:06 25 4
gpt4 key购买 nike

我正在使用 c++ 和 winsock lib 在 Windows 中开发客户端服务器应用程序它工作正常但是如果它在网络上并且一旦服务器监听开始并且如果我移除网络电缆那么服务器不会在任何线程中显示任何错误所以服务器在哪里socket 知道网络电缆已拔出。如果有人知道请帮助我。

最佳答案

虽然应该可以检测到主机上的网络电缆已拔掉,但如果网络在服务器和客户端之间的其他地方中断,您仍然会遇到同样的问题。

解决此问题的一种常见(如果不是最常见的话)方法是发送“保持事件”消息。如果在一段时间内没有收到对该消息的回复,您只需关闭连接并释放与其关联的所有资源。

编辑

“keep-alive”消息就像使用“ping”命令来查看是否可以访问远程机器。它只是一条由服务器或客户端(由谁发起并不重要)发送的消息,以查看连接的另一端是否处于事件状态并且可以到达。

它可以像发送字符串“Are you there?”一样简单。并期待包含“是的,我是”的回复。如果你每分钟发送一次,并且在(例如)一分钟内没有得到回复,你可以认为连接已经死了。接收到“你在吗?”的另一端知道它每分钟都会收到一次消息。如果两分钟后仍未到达,则发件人将无法再联系上。

如果无法修改协议(protocol)以添加此类消息,则查看是否可以使用其他消息。

此外,请记住,了解连接是否有问题的最佳且在某些情况下唯一的方法是尝试从套接字读取数据。

关于c++ - 服务器套接字如何使用C++在Windows中拔出网络电缆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500664/

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