java - 检查 Java 中本地 TCP 端口是否打开

标签 java tcp grizzly

有没有一种简单的方法可以确保本地端口尚未打开。某些 TCP 套接字服务器(例如 Grizzly)默认情况下似乎不执行此检查。如果缺少此检查,服务器似乎会启动并响应,但客户端代码只是连接到未关闭的旧服务器。这可能非常糟糕!

是否有一行简单的 Java 代码可以检查以确保端口尚未被其他进程使用?

最佳答案

我看到两种明显的方法:

  1. 尝试连接到本地主机上的该端口,如果被接受,则该端口正在使用
  2. 尝试在该端口中以监听模式打开 ServerSocket。如果出现“已绑定(bind)”异常,则表明该端口正在使用

希望有帮助。

关于java - 检查 Java 中本地 TCP 端口是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765235/

相关文章:

java - 搜索查找 AND 正则表达式组合

Java 泛型的好奇心

java - 如何禁用标准 Ant 任务?

java - 如何将 Jersey REST 服务器部署到 Heroku

java - 如何在 Grizzly 嵌入式 Jersey 应用程序上获取 HTTP 请求方法?

java - MySQL/Hibernate 随机有 "Communications link failure"

javascript - 从网络浏览器应用程序读取和写入套接字

azure - 我的 Azure 云服务上出现奇怪的 TCP 连接(每 25 秒一次)

c - AT 命令 ESP8266 01 : AT+CIPSTART: How to fix response Link type Error/Can't connect with TCP

java - 用于 Comet 应用程序的 Node.js 与 Java