2011-09-15 48 views
2

我使用Socket連接在我的應用程序中建立連接。在與服務器建立隧道時出現問題:連接在3分鐘後自動關閉,例如在3或4分鐘後再次嘗試獲取數據時,我會在inputStream和outputStream中出現異常。但是打開連接的線程不會通過任何類型的異常,因爲我包含了一個try{ ... } catch (Exception ex) { }
現在的問題是,如何保持套接字連接不會關閉?套接字連接問題

+0

「隧道」,如 「SSH隧道」? – NPE

+1

3/4分鐘後你會得到什麼例外? –

+0

3/4分鐘後沒有拋出異常...我使用catch(異常ex)並且沒有拋出異常 –

回答

0

這個問題在BlackBerry support forums上討論過。

  • 邊緣地區
  • :重要的是要記住,使用便攜式連接的無線設備時,有很多原因的連接可能會往下走,並且具有短超時可能會在情況下,連接可能不可靠益是很重要的
  • 建築物內
  • 移動
1

你試過Socket.setKeepAlive(true)

+0

是的。我試過這個。即使使用setKeepAlive(true),連接仍會在3或4分鐘後變爲空閒狀態 –

+0

默認情況下,tcp keepAlive通常每幾小時發送一次。可能你有一個防火牆/ NAT網關somwehere關閉連接。如果您使用的協議允許,您應該定期發送一些心跳消息到服務器。 – nos