通过套接字连续连接到服务器,直到建立连接

时间:2018-04-25 02:58:53

标签: java sockets

我有一个客户端,我想尝试连续连接到服务器,直到建立连接(即直到我启动服务器)。

clientSocket = new Socket();
while (!clientSocket.isConnected()) {
    try {
        clientSocket.connect(new InetSocketAddress(serverAddress, serverPort));
    } catch (IOException e) {
        e.printStackTrace();
    }

    // sleep prevents a billion SocketExceptions from being printed,
    // and hopefully stops the server from thinking it's getting DOS'd
    try {
        Thread.sleep(1500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

第一次尝试后,我得到ConnectionException;预期,因为没有什么可以连接到。然而,在那之后,我开始得到SocketException: Socket closed这对我没有意义,因为clientSocket.isClosed()总是在connect()来电之前和之后返回false。

我应该如何更改代码以获得我需要的功能?

1 个答案:

答案 0 :(得分:2)

即使连接尝试失败,也无法重新连接Socket。你必须关闭它并创建一个新的。