频道栏目
首页 > 资讯 > Java > 正文

java检测本机端口是否已经被使用的代码

17-06-19        来源:[db:作者]  
收藏   我要投稿

127.0.0.1代表本机
主要的原理是:

 Socket socket = new Socket(Address,port);#address代表主机的IP地址,port代表端口号

如果对该主机的特定端口号能建立一个socket,则说明该主机的该端口在使用。

/**
 * @author MrBread
 * @date 2017年6月18日
 * @time 下午3:14:05
 * @project_name TestSocket
 * 功能:检测本机端口是否已经被使用用
 */
package com.mycode.www;

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;  
    }  
}  
相关TAG标签
上一篇:解决:错误1error C2440: “初始化”: 无法从“char *”转换为“ATL::CStringT(BaseType,StringTraits)
下一篇:如何利用minikube快速安装kubernetes
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站