2

我正在使用 Delphi 2010 处理 HTTP DataSnap 项目。

如何通知服务器客户端关闭异常(例如Killing Proces)?

更多细节:我需要我的服务器知道是否有任何客户端断开连接,它可以,但是当任务管理器使用 Kill 进程关闭客户端时会出现问题。

4

1 回答 1

1

您没有通知服务器客户端崩溃。你通常不能,因为你没有什么可以通知它——你服务器的唯一连接是客户端,而客户端已经崩溃了。

相反,您只能让服务器检测到客户端不再存在。有多种方法可以做到这一点。你可以定义一个keepalive信号,客户端应该定期发送,如果太长时间没有keepalive消息到达,服务器可以假设客户端已经消失。另一种方法是仅检测网络操作何时失败。如果服务器尝试从套接字读取,并且读取失败(例如“损坏的管道”或“对等方重置连接”),则服务器知道客户端不再存在。

于 2012-08-30T17:49:34.013 回答