【问题标题】:Starting an in process JVM with debug listening port. How to check if a port is busy使用调试侦听端口启动进程内 JVM。如何检查端口是否繁忙
【发布时间】:2014-06-17 17:52:57
【问题描述】:

我使用函数 JNI_CreateJavaVM 在 Windows 上将进程内 JVM 创建为可执行文件。我还传递了一些选项来打开调试,特别是:

-Xrunjdwp:transport=dt_socket,server=y,address=666,suspend=n

以及其他一些选项。 这很好用

我遇到的问题是,如果我启动两个版本的可执行文件:JNI_CreateJavaVM 崩溃。显而易见的解决方法是检查端口 666 是否繁忙,如果是,则使用不同的端口号。除了我不知道该怎么做!

那么,我的问题是:如何检查端口是否已被监听?

【问题讨论】:

    标签: c++ windows port jvm-arguments


    【解决方案1】:

    不要提前测试使用中的端口。让你的应用程序做它想做的事,并在那里捕获异常。在您测试和实际尝试使用端口之间,情况可能会发生变化。

    此外,如果您正在尝试编写服务器应用程序,您可以让操作系统自动为您选择一个空闲端口。来自http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html的JavaDoc

    创建一个绑定到指定端口的服务器套接字。端口号 0 表示端口号是自动分配的,通​​常来自临时端口范围。然后可以通过调用 getLocalPort 来检索此端口号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2012-10-29
      • 2012-08-28
      • 2015-11-29
      相关资源
      最近更新 更多