特定のポートで MulticastSocket を作成し、グループに参加しています。現在、ソケットはブロードキャストされている限り、データパケットを受信し続けます。そのため、常に true である while ループで socket.receive を呼び出します。今はグループを離れることはありません。しかし、プログラムを終了すると、ソケットは自動的に閉じますか? これについて明確にする必要があります。
また、そのグループを離れてソケットを閉じる必要がある場合、どうすればそれを達成できますか? addShutdownHook を使用してみました
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
System.out.println("Closing Broadcast Port");
multi.shutsocket();
}
}, "Shutdown-thread"));
しかし、奇妙な理由で機能していません。