[英]Socket.IO Restoring a broken connection
在客戶端-服務器應用程序中,我在一個單獨的線程中向服務器發送一個字符串:
dataOutputStream.writeUTF(_dos);
dataOutputStream.flush();
但是我進入了另一個線程 java.net.SocketException: Connection reset 的行:
mes = dataInputStream.readUTF();
同時,服務器沒有收到任何東西(我在wireshark中檢查了這個)並繼續監聽套接字。
問題是:如果客戶端套接字損壞,但服務器套接字正在工作,是否有可能恢復客戶端套接字的操作,從而恢復客戶端-服務器連接,而不重新啟動兩者?
連接消失了。 在客戶端,您將需要再次連接。
一般來說,TCP 實現不允許您在已斷開連接的套接字上發出連接。 您可以嘗試,但最安全的是創建一個新的套接字對象。 即使它對您有用,結果也可能是不可移植的。
服務器當然也有一個失效連接上的套接字,所以它需要關閉它的結束。 將在“接受”來自客戶端的新連接時創建一個新套接字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.