2012-08-30 104 views
2

我對HTTP的DataSnap項目採用Delphi 2010通知Datasanap服務器,如果客戶端關閉異常

如何通知客戶的閉合異常的服務器(殺程序爲前。)工作?

更多詳細信息: 我需要我的服務器來了解是否有客戶端斷開連接,但是,當客戶端由任務管理器使用Kill進程關閉時會引發問題。

回答

1

您不要通知客戶端崩潰的服務器。你通常不能,因爲你沒有什麼可以通知它 - 你唯一的連接到服務器是客戶端,客戶端已經崩潰。

取而代之,您只能讓服務器檢測到客戶端不再存在。有多種方法可以做到這一點。您可以定義客戶端應該定期發送的Keepalive信號,如果沒有Keepalive消息到達太久,服務器可能會認爲客戶端已經消失。另一種方法是隻檢測網絡操作何時失敗。如果服務器嘗試從套接字讀取,並且讀取失敗(類似「斷開管道」或「通過對等方重置連接」),則服務器知道客戶端不在那裏了。

相關問題