私は MulticastSocket を使用していましたが、グループに参加しようとすると、「localhost」IP でグループを実行しているときに機能しませんでした。ただし、範囲は 224.0.0.1 から 239.255.255.254 の間である必要があると述べているこの記事http://lycog.com/programming/multicast-programming-java/を見つけました。その IP から InetAddress を作成し、グループに参加すると、機能しました。なぜこれが必要なのか説明してください。
例:
InetAddress group = InetAddress.getByName("localhost");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
//投げる
Unable to connect to host:localhost on port:8888
java.net.SocketException: Not a multicast address
動作する例:
InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);