我在同一台计算机上实现了一个 LAN 游戏和测试:创建一个类,在这个类的不同线程中创建一个服务器和一个客户端,然后连接在一起。
关闭两个窗口(客户端和服务器)后,我再次执行上述步骤:运行 java 类,创建服务器和客户端。我总是遇到这个错误:java.net.BindException
(因为这个端口之前已经创建并且还没有关闭)。
每次我创建服务器套接字时,在 catch 中,我总是放置 serverSocket.close()
。但我仍然遇到了那个错误。请给我一些想法来防止这种情况。
@:如果我们知道已经创建了一个端口,我们可以关闭它并创建新端口吗?
谢谢:)
最佳答案
除非捕获异常,否则放入 catch block 的任何内容都不会运行。相反,将 close()
调用放在 finally block 中以确保它始终运行。
关于Java 套接字 : how to prevent java.net.BindException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787826/