java如何检测端口是否可用

时间:2021-01-12 15:20:15
 
  网上两种办法:
  1,有异常就不可用.此办法代价太大.
  2,系统调用.此办法影响跨平台.

  有没有其他办法,好办法?

  waiting...

4 个解决方案

#1


看了一下基本都是
bool portTaken = false;
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
    portTaken = true;
} finally { 
    // Clean up
    if (socket != null) socket.close(); 
}

#2


引用 1 楼 huntor 的回复:
看了一下基本都是
Java code
bool portTaken = false;
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
    portTaken = true;
} finally { 
    // Cle……


或者只能用这不是办法的办法了

#3


我想也是

#4


如果我想检测9999端口可用,是不是还要弄一个socket抛异常才能检测呢?

#1


看了一下基本都是
bool portTaken = false;
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
    portTaken = true;
} finally { 
    // Clean up
    if (socket != null) socket.close(); 
}

#2


引用 1 楼 huntor 的回复:
看了一下基本都是
Java code
bool portTaken = false;
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
    portTaken = true;
} finally { 
    // Cle……


或者只能用这不是办法的办法了

#3


我想也是

#4


如果我想检测9999端口可用,是不是还要弄一个socket抛异常才能检测呢?