2010-04-01 79 views
1

我創建了一個示例java套接字應用程序。
我用套接字s = new Socket(ip, port)現在它工作正常。但是當我的互聯網連接在很長的時間間隔後很慢(即使有時在2分鐘後)時,我曾經在該行中獲得SocketTimeOutException。意味着它在創建套接字時出現該錯誤。我希望異常應該得到妥善處理,意味着如果互聯網連接速度非常慢,那麼如果發生錯誤,它現在已經很晚了。
我想如果發生這種類型的錯誤,那麼它應該被捕獲得非常快,這意味着錯誤不應該出現在這樣的延遲時間間隔,而是應該立即出現。SocketTimeOutException創建套接字時,java

如何實現這一點。

回答

1

減少插座超時等:

sock.connect(new InetSocketAddress("www.google.com", 80), 500); 

其中500是在毫秒超時。

try { 
     InetAddress addr = InetAddress.getByName("www.google.com"); 
     int port = 80; SocketAddress sockaddr = new InetSocketAddress(addr, port); 
     Socket sock = new Socket(); 
     int timeoutMs = 500; 
     sock.connect(sockaddr, timeoutMs); 
    } 
catch (SocketTimeoutException e) { System.out.println("Timeout reached!");} 

這裏使用Socket類的一個片段