У меня в сети несколько серверов, которые отправляют широковещательное сообщение. Со следующим клиентом я пытаюсь захватить все широковещательные сообщения со всех серверов. Отправляющая часть отлично работает (не входит в этот пост), но моя получающая часть не работает ... Я продолжаю получать «SocketException: не многоадресный адрес», что я делаю неправильно?Java - SocketException: не многоадресный адрес
public static String[] capture(int port) { // port is always 63332
ArrayList<String> clients = new ArrayList<>();
InetAddress address = Utilities.getBroadcastAddress(); // I get "/192.168.2.255" here
MulticastSocket socket = null;
try {
socket = new MulticastSocket(port);
socket.setSoTimeout(2000);
socket.joinGroup(address); // this part throws the exception
DatagramPacket packet;
byte[] packetContent;
while (true) {
packetContent = new byte[1024];
packet = new DatagramPacket(packetContent, packetContent.length);
try {
socket.receive(packet);
String client = packet.getAddress() + ":" + packet.getPort();
clients.add(client);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(socket != null) {
try {
socket.leaveGroup(address);
} catch(IOException e) {
e.printStackTrace();
}
socket.close();
}
return clients.toArray(new String[clients.size()]);
}
Я не знаю, о чем я думал ... спасибо. – Eric