Java 学习,查看端口使用与否

该文章已生成可运行项目,

Java查看端口是否已被使用,通常涉及尝试绑定一个 ServerSocket 到指定的端口,并捕获可能抛出的 IOException 异常。如果绑定成功,则说明端口未被使用;如果抛出异常,则说明端口已被占用。

基本概念:

  • 端口(Port)
    • 端口是计算机通信中的一个逻辑概念,用于区分同一台计算机上的不同网络服务。
    • 每个网络服务(如HTTP服务、数据库服务等)都会绑定到特定的端口上,客户端通过指定端口来访问相应的服务。
  • ServerSocket
    • ServerSocket 是 Java 提供的一个类,用于创建服务器端的套接字。
    • 通过 ServerSocket,可以监听指定端口上的连接请求,并接受来自客户端的连接。
  • 异常处理
    • 当尝试绑定一个已被使用的端口时,ServerSocket 的构造函数会抛出 IOException 异常。
    • 通过捕获这个异常,可以判断端口是否已被占用。

示例:

import java.io.IOException;
import java.net.ServerSocket; 
public class PortChecker {
 
    /**
     * 检查端口是否被使用
     * @param port 端口号
     * @return 端口未被使用,返回true;否则返回false
     */
    public static boolean isPortInUse(int port) {
        boolean isInUse = true;
        ServerSocket socket = null;
        try {
            // 绑定ServerSocket到端口
            socket = new ServerSocket(port);
            // 绑定成功,则端口未被使用
            isInUse = false;
            // 关闭ServerSocket
            socket.close();
        } catch (IOException e) {
            // 如果抛出IOException,端口被使用
            isInUse = true;
        } finally {
            if (socket != null && !socket.isClosed()) {
                try {
                    socket.close();
                } catch (IOException ex) {
                    // 处理关闭Socket时的异常
                    ex.printStackTrace();
                }
            }
        }
        return isInUse;
    }
 
    public static void main(String[] args) {
        int portToCheck = 8080; // 检查的端口号
        if (isPortInUse(portToCheck)) {
            System.out.println("端口 " + portToCheck + " 已被使用");
        } else {
            System.out.println("端口 " + portToCheck + " 未被使用");
        }
    }
}

 

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值