2014-12-03 110 views
0

我試圖連接到套接字socket = new Socket(server , port);,但如果服務器不可用,我需要設置失敗連接超時。 默認超時時間爲3min,例如,如果我開始連接11:50:22,錯誤將僅存在於11:53:31。查看日誌:如何設置套接字超時失敗連接

12-03 11:50:22.519: E/InternetIntentService(23897): Start connecting to localhost:9999 
    12-03 11:53:31.869: W/System.err(23897): java.net.ConnectException: failed to connect to /localhost (port 9999): connect failed: ETIMEDOUT (Connection timed out) 

如何改變這種3分鐘10秒

回答

0

創建一個無參數的構造函數Socket,然後調用connect(endpoint, timeout);

Socket s = new Socket(); 
s.connect(endpoint, timeout); 

注意,相反的Javadoc,零並不意味着無窮大,這意味着平臺默認(1分鐘左右),並且您只能使用此技術來減少平臺默認值,而不是增加平臺默認值。