在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
连接。