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