java实例检查端口是否被占用

Posted 程序是练出来的

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实例检查端口是否被占用相关的知识,希望对你有一定的参考价值。

127.0.0.1代表本机
主要的原理是:Socket socket = new Socket(Address,port);#address代表主机的IP地址,port代表端口号
如果对该主机的特定端口号能建立一个socket,则说明该主机的该端口在使用。
Socket socket = new Socket(Address,port);#address代表主机的IP地址,port代表端口号
如果对该主机的特定端口号能建立一个socket,则说明该主机的该端口在使用。
import java.io.IOException;  
import java.net.InetAddress;  
import java.net.Socket;  
import java.net.UnknownHostException;  
 
public class Main {  
    //start--end是所要检测的端口范围
    static int start=0;
    static int end=1024;
    public static void main(String args[]){
        for(int i=start;i<=end;i++){
            System.out.println("查看"+i);
            if(isLocalPortUsing(i)){
                System.out.println("端口 "+i+" 已被使用");
            }
        }
    }
    /**
     * 测试本机端口是否被使用
     * @param port
     * @return
     */
    public static boolean isLocalPortUsing(int port){  
        boolean flag = true;  
        try {
            //如果该端口还在使用则返回true,否则返回false,127.0.0.1代表本机
            flag = isPortUsing("127.0.0.1", port);  
        } catch (Exception e) {  
        }  
        return flag;  
    }  
    /*** 
     * 测试主机Host的port端口是否被使用
     * @param host 
     * @param port 
     * @throws UnknownHostException  
     */ 
    public static boolean isPortUsing(String host,int port) throws UnknownHostException{  
        boolean flag = false;  
        InetAddress Address = InetAddress.getByName(host);  
        try {  
            Socket socket = new Socket(Address,port);  //建立一个Socket连接
            flag = true;  
        } catch (IOException e) {  
 
        }  
        return flag;  
    }  
}

 



以上是关于java实例检查端口是否被占用的主要内容,如果未能解决你的问题,请参考以下文章

java中如何检测本机指定的UDP服务端口是不是被占用?并且自动分配一个可用udp端口;

Rancher - 从 CLI 检查是不是占用了牛港

golang怎么检查端口被占用了

Linux如何查询哪些端口被占用

Linux如何查询哪些端口被占用

Linux如何查询哪些端口被占用