我的聊天應用程序連接到服務器,用戶發送/接收信息。當連接發生變化時,例如3g-> wifi,wifi-> 3g,丟失數據連接等,socket有時會在斷開連接之前保持連接狀態。在此期間,無法判斷連接是否仍處於活動狀態,看起來好像郵件發送得很好。其他時候,發送消息時,它會拋出IO錯誤並斷開連接。連接變化時套接字不斷開
除了實現代碼來檢測連接更改並重新適當地重新連接之外,是否有可能在連接更改時立即拋出IO異常?
編輯:
Socket sock = new Socket();
sock.connect(new InetSocketAddress(getAddress(), getPort())), getTimeout());
//get bufferedReader and read until BufferedReader#readLine() returns null
我不使用setSoTimeout作爲數據可以不被移送根據遠程服務器的配置的長時間
:我使用以下代碼連接。
然後看到http://stackoverflow.com/questions/969866/java-detect-lost-connection http://stackoverflow.com /問題/ 155243 /爲什麼 - 是 - 它不可能的 - 不 - 嘗試-IO到檢測 - 這-TCP-插座爲寬限期 – 2010-01-05 23:23:36