2011-03-28 20 views
0

我已經在java中創建了一個TCP服務器客戶端應用程序,它們之間交換週期性消息。 作爲故障管理的一部分,我需要檢測主機/客戶端的故障,然後調用我的自定義功能。 Java中的哪個異常會捕獲這部分內容? SocketException會在這裏工作嗎?我只想在主持人/客戶端關閉而不是其他任何問題時調用失敗管理。用於檢測主機/接收器的異常已經停止/失敗?

回答

2

您需要區分服務器故障(正在關機,導致出現IOException),當您啓動連接(ConnectException)時服務器不可用,並且服務器脫機(想象網絡電纜被拔出)。這通常會以SocketTimeoutException或類似的形式表現出來。

我會運行一個過程並嘗試所有您希望處理的場景。你必須以不同的方式處理超時,以明確斷開連接等。