有没有一种简单的方法可以确保本地端口尚未打开。某些 TCP 套接字服务器(例如 Grizzly)默认情况下似乎不执行此检查。如果缺少此检查,服务器似乎会启动并响应,但客户端代码只是连接到未关闭的旧服务器。这可能非常糟糕!
是否有一行简单的 Java 代码可以检查以确保端口尚未被其他进程使用?
最佳答案
我看到两种明显的方法:
- 尝试连接到本地主机上的该端口,如果被接受,则该端口正在使用
- 尝试在该端口中以监听模式打开 ServerSocket。如果出现“已绑定(bind)”异常,则表明该端口正在使用
希望有帮助。
关于java - 检查 Java 中本地 TCP 端口是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765235/