温馨提示×

Java Socket连接超时该如何设置

小樊
93
2024-09-02 22:00:07
栏目: 编程语言

在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()方法并传入addresstimeout参数。如果在指定的超时时间内无法建立连接,将抛出SocketTimeoutException。如果连接成功,你可以继续编写与服务器的通信代码。最后,记得关闭Socket连接。

0