在Java中,使用Socket连接时,可以通过设置connectTimeout
来控制连接超时。这可以通过Socket
类的connect
方法实现,该方法接受一个InetSocketAddress
对象和一个超时值(以毫秒为单位)。
以下是一个示例,展示了如何设置Socket连接超时:
import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketTimeoutException; public class SocketConnectionTimeout { public static void main(String[] args) { String host = "example.com"; // 目标服务器地址 int port = 80; // 目标服务器端口 int timeout = 5000; // 连接超时时间,单位为毫秒 try { Socket socket = new Socket(); InetSocketAddress address = new InetSocketAddress(host, port); socket.connect(address, timeout); // 连接成功后,你可以在此处编写与服务器的通信代码 socket.close(); } catch (SocketTimeoutException e) { System.err.println("连接超时: " + e.getMessage()); } catch (IOException e) { System.err.println("连接出错: " + e.getMessage()); } } }
在这个示例中,我们创建了一个Socket
对象,然后使用InetSocketAddress
对象指定目标服务器的地址和端口。接着,我们调用socket.connect()
方法并传入address
和timeout
参数。如果在指定的超时时间内无法建立连接,将抛出SocketTimeoutException
。如果连接成功,你可以继续编写与服务器的通信代码。最后,记得关闭Socket
连接。