我不明白为什么在初始连接失败时以下程序无法正常工作(我有意在第一次连接失败后启动服务器套接字):

Socket client = new Socket();
while (true) {
    try {
        client.connect(address);
        break;
    } catch (IOException e) {
         Thread.sleep(1000);
    }
}

如果我在while循环内移动client = new Socket();,它可以工作,但是我在文档中找不到任何内容,指出如果初始连接失败,套接字将“断开”,必须回收。

最佳答案

您无法重新连接已经无法连接的套接字。您必须关闭它,然后使用新的 socket 重试。您要查找的文档位于Berkeley Sockets API级别,而不是Java,

09-10 04:02
查看更多