Следующий код работает только локально для меня. Я могу получить его на одной машине в другой программе. Я не вижу никакого трафика в wirehark (в Windows). Если я изменю адрес многоадресной рассылки на существующий адрес, например 10.10.10.10, я вижу UDP-пакет в wirehark.Почему DatagramSocket не передает по сети многоадресный адрес?
В wirehark я использую фильтр udp.port == 5353. Я могу видеть некоторые другие пакеты для адреса многоадресной рассылки, что я считаю, что мои настройки wirehark верны.
Брандмауэр отключен.
public static void main(String[] args) throws Exception {
byte[] buf = "some data".getBytes();
DatagramSocket socket = new DatagramSocket();
InetAddress address = InetAddress.getByName("224.0.0.251");
socket.send(new DatagramPacket(buf, buf.length, address, 5353));
}
EDIT: Причина, кажется, петлевой адаптер (Microsoft Loopbackadapter für KM-TEST). Если я удалю петлевой адаптер, тогда он будет работать. В другой системе есть адаптер VMware, который может создать равную проблему.
Почему пакет не отправляется всем сетевым адаптерам? Как я могу отправить его на правильный адаптер?
Что вы настройки сети? Что такое сетевая маска? –
@BoristheSpider Посмотреть мое редактирование. – Horcrux7