【问题标题】:Socket not connecting after first connection failure第一次连接失败后套接字未连接
【发布时间】: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,别忘了关闭前一个失败的。

标签: java sockets io


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多