次の方法を使用して、ポート 80 が使用可能かどうかを確認します。
ポート 80 が使用可能かどうかをチェックする Java アプリケーションがあります。使用可能な場合は、ポート 80 でリッスンする小さな Web サーバーを実行します。別の Java アプリケーションがポート 80 でリッスンしているかどうかを検出するのに最適です。たとえば、アプリケーションを 2 回実行した場合、 2 番目のインスタンスは、ポート 80 が使用されていることを正しく伝えます。
問題は、WAMP を実行してポート 80 でリッスンしていることと、WAMP を開始した後に Java アプリケーションを実行しても、ポート 80 がビジーであることが通知されないことです。別のJavaアプリケーションがポート80を使用しているかどうかだけを教えてくれるようです.
それは私の理解を超えています...どんな助けも大歓迎です!
コードスニペット:
int port = 80;
if(!Connection.isPortAvailable(port)) {
logger.info("Port " + port + " is already in use");
}
// in Connection class
public static boolean isPortAvailable(int port) {
ServerSocket ss = null;
DatagramSocket ds = null;
try {
ss = new ServerSocket(port);
ss.setReuseAddress(true);
ds = new DatagramSocket(port);
ds.setReuseAddress(true);
return true;
} catch (IOException e) {
} finally {
if (ds != null) {
ds.close();
}
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
/* should not be thrown */
}
}
}
return false;
}