如果你想找到一个本地开放端口来绑定服务器,那么你可以创建一个ServerSocket,如果它没有抛出异常,那么它是打开的.
我在其中一个项目中做了以下事情:
private int getAvailablePort() throws IOException {
int port = 0;
do {
port = RANDOM.get().nextInt(20000) + 10000;
} while (!isPortAvailable(port));
return port;
}
private boolean isPortAvailable(final int port) throws IOException {
ServerSocket ss = null;
try {
ss = new ServerSocket(port);
ss.setReuseAddress(true);
return true;
} catch (final IOException e) {
} finally {
if (ss != null) {
ss.close();
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
RANDOM是一个ThreadLocal在这里,但当然你可以在那里做一个增量部分.
| 归档时间: |
|
| 查看次数: |
6145 次 |
| 最近记录: |