我不明白为什么以下程序在初始连接失败时无效(我在第一次连接失败后故意启动服务器套接字):
Socket client = new Socket();
while (true) {
try {
client.connect(address);
break;
} catch (IOException e) {
Thread.sleep(1000);
}
}
如果我在while循环中移动client = new Socket();
,它可以正常工作,但我在文档中找不到任何内容,表明如果初始连接失败,套接字会被打破&#34 ;并且必须回收利用。
答案 0 :(得分:2)
您无法重新连接已无法连接的套接字。您必须关闭它并使用新套接字重试。您正在寻找的文档将是Berkeley套接字API级别,而不是Java,