使用调试侦听端口启动进程JVM。如何检查端口是否繁忙

时间:2014-05-01 08:42:02

标签: c++ windows port jvm-arguments

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

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

以及其他一些选项。 这样可以正常使用

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

所以,我的问题是:我如何检查是否正在收听某个端口?

1 个答案:

答案 0 :(得分:0)

请勿提前测试端口的使用情况。只需让您的应用程序执行它想要执行的操作,并在那里捕获异常。在测试时和实际尝试使用端口之间,情况可能会发生变化。

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

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