Java判断端口是否被占用

时间:2025-04-10 11:55:21
package ;

import ;
import ;
import ;
import ;

/**
 * 提供查看端口是否被占用的方法
 */
public class NetUtils {
    public static void main(String[] args) {
        (isLoclePortUsing(8080));
    }

    /**
     * 查看本机某端口是否被占用
     * @param port  端口号
     * @return  如果被占用则返回true,否则返回false
     */
    public static boolean isLoclePortUsing(int port){
        boolean flag = true;
        try{
            flag = isPortUsing("127.0.0.1", port);
        }catch (Exception e){
            ();
        }
        return flag;
    }

    /**
     * 根据IP和端口号,查询其是否被占用
     * @param host  IP
     * @param port  端口号
     * @return  如果被占用,返回true;否则返回false
     * @throws UnknownHostException    IP地址不通或错误,则会抛出此异常
     */
    public static boolean isPortUsing(String host, int port) throws UnknownHostException {
        boolean flag = false;
        InetAddress theAddress = (host);
        try{
            Socket socket = new Socket(theAddress, port);
            flag = true;
        } catch (IOException e) {
            //如果所测试端口号没有被占用,那么会抛出异常,这里利用这个机制来判断
            //所以,这里在捕获异常后,什么也不用做
        }
        return flag;
    }
}