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

发布于 2024-08-11 18:28:52 字数 160 浏览 6 评论 0原文

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

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

Is there a simple way to make sure that a local port is not already open. Some TCP socket servers (eg Grizzly) don't seem to do this check by default. When this check is missing, the server appears to start and respond, but the client code is just connecting to an old server that wasn't shutdown. This can be very bad!

Is there a simple line of Java code that could check to be sure that port isn't already used by another process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尤怨 2024-08-18 18:28:52

我看到两种明显的方法:

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

希望它有帮助。

I see two obvious ways to do it:

  1. try to connect to that port on localhost, if you get accepted, the the port is being used
  2. try to open a ServerSocket in listen mode in that port. If you get "already bound" exception, then the port is being used

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文