首次连接失败后sockets未连接

我不明白为什么以下程序在初始连接失败时不起作用(我在第一次连接失败后故意启动服务器套接字):

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

如果我移动client = new Socket(); 在while循环中,它可以工作,但我在文档中找不到任何说明如果初始连接失败,套接字被“破坏”并且必须被回收。

您无法重新连接已连接失败的套接字。 您必须关闭它并使用新套接字重试。 您正在寻找的文档将是Berkeley套接字API级别,而不是Java,