我有一个服务器代码尝试根据给定的端口范围获取空闲端口 -
private ServerSocket allocatePort() throws IOException {
ServerSocket server = null;
for (int i=0; i<serverPortRange; i++) {
int port = serverPort.intValue()+i;
try {
server = new ServerSocket(port);
break;
} catch (IOException e) {
log.debug(String.format("DCServer could not allocate port %s", port));
}
}
if (server == null) {
throw new IOException();
}
return server;
}
当两台服务器在同一台机器上运行此代码时,它们会以某种方式获得相同的端口。我用netstat检查了它是否真的获得了,我在占用端口列表中没有看到它。
有任何想法吗?
谢谢, 奥菲尔