2010-04-01 81 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类的一个片段