特定のポート範囲に従って空きポートを取得しようとするサーバー コードがあります。
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;
}
2 つのサーバーが同じマシンでこのコードを実行すると、何らかの理由で同じポートが取得されます。実際に取得できているかnetstatで確認したところ、占有ポート一覧に表示されません。
何か案は?
ありがとう、オフィル