21xrx.com
2024-09-17 04:30:59 Tuesday
登录
文章检索 我的文章 写文章
从Java中获取当前程序运行的端口号
2023-06-15 16:33:53 深夜i     --     --
Java 端口号 Socket类 ManagementFactory类

在开发Java应用程序时,我们经常需要获取当前程序运行的端口号,以便于进行相关的操作。本文将介绍如何使用Java获取当前程序的端口号。

首先,我们需要使用Java的Socket类来获取当前程序所绑定的端口号。代码如下:


ServerSocket socket = new ServerSocket(0);

int port = socket.getLocalPort();

socket.close();

System.out.println("当前程序端口号为: " + port);

上述代码中,我们先创建了一个ServerSocket对象,并将其绑定到一个随机的端口号上(通过传入参数0表示随机分配端口号)。然后,我们通过调用getLocalPort()方法获取当前程序所绑定的端口号。最后,我们需要记得关闭该Socket对象,否则该端口号将一直被占用。

除了使用ServerSocket类,我们还可以使用Java的ManagementFactory类来获取当前程序运行的端口号。代码如下:


RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();

String name = runtimeMXBean.getName();

int index = name.indexOf('@');

int pid = Integer.parseInt(name.substring(0, index));

int port = pid + 10000;

System.out.println("当前程序端口号为: " + port);

上述代码中,我们通过调用ManagementFactory类的getRuntimeMXBean()方法来获取当前应用程序的运行时信息。然后,我们从该信息中获取进程ID,最后通过加上一个固定的数值来计算出当前程序所绑定的端口号。

总的来说,使用Java获取当前程序运行的端口号是非常简单的。只需要使用Java的Socket类或ManagementFactory类中的方法即可。但需要注意的是,获取到的端口号只是程序所绑定的端口,而不是监听的端口。如果程序使用了多个端口,则需要根据具体情况进行相应的处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复