网络电缆或服务器断开后,KEEP_ALIVE仍会向服务器发送数据包

时间:2017-02-03 09:32:09

标签: c++ windows keep-alive winsock2

我有简单的客户端服务器应用程序,我从MSDN下载了它。我已经使用WSAIoCtl函数将keep-alive数据包发送到server(),如果服务器在客户端应用程序完成最大重试时没有响应,它将最终抛出WSACONNRESET。我可以看到保持活动数据包(在Wireshark工具中),两者都连接。现在,如果我拔掉电缆,我仍然可以看到那些保持活动的数据包被发送到服务器并在客户端接收。这个过程无限期地进行着。我无法理解这是怎么发生的,因为我的服务器不再连接到网络仍然连接保持在ESTABLISHED状态。 我想知道这怎么可能。如果我在连接到客户端时关闭我的服务器,我可以看到在WireShark上运行保持活动的数据包。我无法检测到连接断开。

当我关闭服务器应用程序时,我从服务器收到FIN / ACK,仍然保持活着继续运行。

请帮助我。

0 个答案:

没有答案