その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Javaで空いているポート番号を取ってきたい

Javaで空いてるポート番号取ってきたかったんで,以下のように書いたらポート番号取れて便利でした.

int port;
try (Socket socket = new Socket()) {
    socket.bind(null);
    port = socket.getLocalPort();
}

ドキュメントによると,Socket#bind()の引数にnullを渡すと「アドレスがnullの場合は、システムにより一時的なポートと有効なローカル・アドレスが選択されてソケットがバインドされます」とのことなので,それを使ってbindしてポート番号を取得してからそのSocketをcloseすればそのポートが空くので空きポートが取れる,という寸法です.

try-with-resources使うとcloseのし忘れとかが無くなって便利ですね,便利!

[追記]


とのことです!