我已经创建与C ++的CSocket客户端服务器应用程序。当我在客户端连接到服务器之后,我关闭客户端与普通的X按钮或任务管理器结束任务了,服务器的CSocket接收OnClose事件。问题是,当我禁用Windows的Internet连接客户端上运行,服务器的CSocket不接收的OnClose也没有的onReceive事件!

是任何人都可能知道这是怎么回事?

更新:我刚刚测试,发现客户没有收到的OnClose呢!我禁用对客户端上!

运行Windows互联网连接
有帮助吗?

解决方案

在客户端是没有能够关闭经由FIN或RST连接到服务器关机。对于服务器检测到客户端是死的,必须要么有数据要发送(这将失败),或者必须定期发送TCP存活探测。 TCP_KEEPALIVE可以被设置为一个套接字选项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top