【发布时间】:2023-03-10 15:08:01
【问题描述】:
我不明白为什么初始连接失败时下面的程序不起作用(我故意在第一次连接失败后启动服务器套接字):
Socket client = new Socket();
while (true) {
try {
client.connect(address);
break;
} catch (IOException e) {
Thread.sleep(1000);
}
}
如果我将 client = new Socket(); 移动到 while 循环内,它可以工作,但我在文档中找不到任何说明如果初始连接失败,则套接字“损坏”并且必须回收。
【问题讨论】:
-
我在文档中也找不到,但是正如您所发现的,如果实例连接失败,您将无法重用该实例。每次只创建一个新的Socket,别忘了关闭前一个失败的。