Javaでポート番号が使用されているかどうかを検出する方法は何ですか?
JavaのSocketクラスを使用して、ポート番号が使用されているかどうかをチェックできます。接続を確立できれば、ポート番号が占有されていることを示し、そうでなければ占有されていないことを示します。以下は簡単なサンプルコードです:
import java.io.IOException;
import java.net.Socket;
public class PortScanner {
public static void main(String[] args) {
int port = 8080; // 要检测的端口号
String host = "localhost"; // 主机名
try {
Socket socket = new Socket(host, port);
System.out.println("Port " + port + " is already in use");
socket.close();
} catch (IOException e) {
System.out.println("Port " + port + " is available");
}
}
}
上記のコードでは、特定のホストとポートでソケット接続を確立しようとしています。接続が成功した場合は、ポート番号が使用中であるメッセージが出力され、失敗した場合はポート番号が使用可能であるメッセージが出力されます。
この方法は特定のホスト上のポートの占有を検知することができます。ローカルマシンのポートの占有を確認したい場合は、ホスト名を “localhost” または “127.0.0.1” に設定してください。遠隔のマシンのポートの占有を確認したい場合は、対応するIPアドレスにホスト名を設定する必要があります。