我正在某个端口创建一个 MulticastSocket,然后加入一个组。现在,只要数据包被广播,套接字就会不断接收数据包。所以我在一个while循环中调用socket.receive,这总是正确的。现在我从来没有离开过这个小组。但是如果我终止我的程序,它会自动关闭套接字吗?我需要对此进行一些澄清。
另外,如果我确实需要离开所述组并关闭套接字,我该如何实现?我试过使用 addShutdownHook
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
System.out.println("Closing Broadcast Port");
multi.shutsocket();
}
}, "Shutdown-thread"));
但由于某些奇怪的原因,它不起作用。