2011-07-11 39 views
2

當客戶端A連接到服務器B時,我們在服務器B上獲得java.net.SocketTimeoutException。不知道爲什麼。客戶端正在向服務器發送數據,然後服務器拋出此異常。如何解決這個問題?如何調試SocketTimeoutException?

注意目前這隻發生過一次。不確定這是否可以重現。試圖再次設置測試..

回答

0

沒有數據在超時時間內到達接收器。這就是全部意思。調試它意味着找出你認爲發送的數據爲什麼沒有發送。例如缺少flush()。

0

當我的用戶使用3G或2G網絡時,我遇到了同樣的問題。這意味着,您發送請求到服務器,並且由於互聯網信號弱,無法建立連接。您可以增加您的連接

URLConnection connection; 
int timeout = 30 * 1000; 
connection.setConnectTimeout(timeout); 
connection.setReadTimeout(timeout); 

上超時,但如果你已經weaaak weeeaaaak互聯網connection,超時不幫你。 我剛剛創建1個testFunction在WebService(或者你可以用你的一個),用於調用另一個所需的功能之前測試connectionserver,如果我得到SockectTimeoutException調用此函數 - 只是通知用戶報告「弱連接互聯網! 「