利用java代码如何检测某端口号是不是可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用java代码如何检测某端口号是不是可用相关的知识,希望对你有一定的参考价值。

很简单,给你写个例子:


//检测端口8080到8090哪些可用哪些不可用

for(int i = 8080; i<8090; i++)

try

ServerSocket sskt = new ServerSocket(i);

System.out.println("端口[" +i + "]可用。");

catch (IOException e)

System.out.println("端口 [" + i + "] 被占用.");


参考技术A 一般习惯不是都把tomcat端口改为ie端口80嘛?这样还省的在浏览器里打端口号了! 参考技术B 用serverSocket吗,在new时,有exception

简单的说 就是你直接用 如果不可用 就会报错 你捕获这个异常就OK了追问

不行啊 亲 我是修改tomcat端口号。让用户自己修改,修改完了。 在浏览器运行时才知道能不能用

追答

你想自己写一个程序来检测端口可用情况吗?
那简单 你写个循环 里面写 try catch try里面用8080端口来创建一个socket server 如果成功 说明之前没其他程序占用这个端口,紧接着你把你的socketserver关掉 这个端口就空出来了 可以用了
如果报错 就8081 8082 这样挨个试下去 直到找到可用的

本回答被提问者和网友采纳

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

即java实现:用函数返回一个可用的udp端口(本机客户端)

1.端口占用编译器会报错,可以从错误看出来是不是端口被占用。没有专门的检测工具和方法
2.DatagramSocket(在Java中使用UDP协议编程的相关类)
用于接收和发送UDP的Socket实例。该类有3个构造函数:
DatagramSocket():通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。程序会让操作系统分配一个可用的端口。
DatagramSocket(int port):创建实例,并固定监听Port端口的报文。通常用于服务端
DatagramSocket(int port, InetAddress localAddr):这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。
DatagramSocket具有的主要方法如下:
1)receive(DatagramPacket d):接收数据报文到d中。receive方法产生一个“阻塞”。“阻塞”是一个专业名词,它会产生一个内部循环,使程序暂停在这个地方,直到一个条件触发。

 2)send(DatagramPacket dp):发送报文dp到目的地。

 3)setSoTimeout(int timeout):设置超时时间,单位为毫秒。

 4)close():关闭DatagramSocket。在应用程序退出的时候,通常会主动释放资源,关闭Socket,但是由于异常地退出可能造成资源无法回收。所以,应该在程序完成时,主动使用此方法关闭Socket,或在捕获到异常抛出后关闭Socket。
希望对您有帮助谢谢
参考技术A 使用异常处理 try catch(Exception h) //表示此端口已经被占用了;

以上是关于利用java代码如何检测某端口号是不是可用的主要内容,如果未能解决你的问题,请参考以下文章

mac上如何查看某端口号被哪些程序占用

mac上如何查看某端口号被哪些程序占用

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

nginx配置某端口号后无法运行排查

如何用java程序获得本机的端口号?

java 怎么通过写一段代码来判断端口号是不是被占用。在Linux下。