2

我创建了一个将数据从客户端记录到服务器的小型应用程序。我想从任务信使退出应用程序时获取客户端应用程序的状态。我如何获得客户状态。

就像在Skype中一样。

我用户退出 Skype 表单任务信使另一个用户的 Skype 节目已注销该用户。

4

2 回答 2

1

您可以让客户端定期发送小心跳。如果这些心跳停止,您就知道客户端已关闭(进程被终止、应用程序关闭、计算机关闭、网络连接断开等)。

于 2013-05-27T13:57:46.460 回答
0

您不能捕获 SocketException 并检查是否接收到零字节。如果您收到零字节,则另一端干净地关闭了连接。如果你得到一个 SocketException 并且 SocketErrorCode 设置为 ConnectionReset 那么你也可以假设另一端已经消失了。您唯一不会选择的是半开连接。为此,您将需要 Andreas 建议的某种保活数据包。

于 2013-05-27T14:19:41.793 回答