gpt4 book ai didi

java - 如何重新打开 Java 套接字

转载 作者:行者123 更新时间:2023-12-01 06:37:18 24 4
gpt4 key购买 nike

我正在循环中从 Java Socket 读取数据。

如果读取抛出异常,我想重新打开套接字。

为了测试这一点,我只是关闭套接字并捕获异常。

问题是,当我尝试重新打开套接字时:

serverSocket = new ServerSocket(port)
socket = serverSocket.accept()

它抛出异常:

java.net.BindException: The socket name is already in use

这是测试中迫在眉睫的问题。但它也可能发生在生产中。

发生异常后,如何通过打开新的套接字连接来可靠地恢复已被抛出?

最佳答案

如果我误解了你的意思,我很抱歉。

如果套接字上的 read() 方法失败,这不会关闭 ServerSocket。

您应该仍然能够调用 serverSocket.accept() 而无需创建新的。我认为这就是您收到 BindException 的原因。

关于java - 如何重新打开 Java 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1205133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com