一、指定范围可用端口
/**
* 获取可用的tcp端口号
* @return
*/
public static int getAvailableTcpPort() {
// 指定范围10000到65535
for (int i = 10000; i <= 65535; i++) {
try {
new ServerSocket(i).close();
return i;
} catch (IOException e) { // 抛出异常表示不可以,则进行下一个
continue;
}
return -1;
}
}
二、随机可用端口
这里一定要close()
,不然这个端口无法被其他程序使用。
/**
* 获取本地可用tcp端口
* @return 端口号
*/
private int getAvailableTcpPort() {
try {
ServerSocket serverSocket = new ServerSocket(0);
int localPort = serverSocket.getLocalPort();
//这里一定要close(),不然这个端口无法被其他程序使用
serverSocket.close();
return localPort;
} catch (IOException e) {
e.printStackTrace();
}
return -1;
}