记得以前在写程序的时候,有一次需要查看端口的被占用情况,虽然我不会,但是有人会。所以通过网上查找相关的文章,具体如下。
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; } }
输出结果如下:
查看0 查看1 查看2 查看3 查看4 查看5 查看6 查看7 查看8
火柴人绳索英雄2无限金币版 (Stickman Rope Hero 2)安卓版v2.2v3.4.2
下载奥特曼之格斗超人内测版本 安卓最新版v11.0.0
下载奥特曼之格斗超人百度版 安卓版v11.0.0
下载奥特曼之格斗超人4399游戏盒版 最新安卓版v11.0.0
下载德凯奥特曼D闪光剑模拟器 安卓版v1.0
德凯奥特曼D闪光剑模拟器是一个非常有趣的奥特曼变身模拟器,可
亚刻觉醒器 安卓版v1.1
亚刻觉醒器模拟器是一个非常有趣的奥特曼变身模拟器,为喜欢亚刻
海上餐厅无限金币版 v1.0
海上餐厅免广告版是游戏的破解版本,在该版本中为玩家去除了广告
阿西美女室友竟然全解锁版 v1.0.2
阿西美女室友竟然内置菜单版是游戏的破解版本,在该版本中为玩家
我是大东家正版 最新版v1.2.738
我是大东家正版是一款放置类模拟经营手游,玩家将回到古代成为家