2017-02-20 66 views
0

我正在使用java TCP套接字編寫客戶端 - 服務器應用程序。控制java套接字的連接

客戶端和服務器通過套接字連接。 有時服務器必須在此套接字上爲客戶端寫回復消息。

但是在那一刻,客戶端的套接字可以關閉,不使用close()方法,而是關閉客戶端的應用程序。 你能告訴我,服務器如何識別這種情況,並避免在這個套接字上寫回應消息?

+3

我只是簡單地捕獲將拋出服務器代碼的IOException。確切地說,是 –

+0

。處理錯誤。不要試圖預測未來。 – EJP

回答

0

這是不可能做到可靠。如果你確定連接是開放的,那麼當你寫信給它時,它可能已經關閉了。可靠的解決方案是嘗試寫入,並處理可能導致的任何錯誤。

請注意,如果您確實收到錯誤指示,則說明有多少數據傳到遠程對等方。如果您執行了兩次寫入操作,而第二次寫入操作出現錯誤指示,則在第一次寫入操作之前,遠程對端很可能會關閉,但本地對等設備在第二次寫入操作期間只會注意到它。