Я ищу способ не получать широковещательные сообщения с помощью DatagramSocket .Реализация, кажется, скрывает адрес назначения, поэтому я не могу использовать его в качестве фильтра.Установка setBroadcast, кажется, ничего не делает.
У меня есть сокет, связанный с локальным IP-адресом, но он все еще получает все широковещательные сообщения из подсети.
InetAddress addr = InetAddress.getByName("1.2.3.4");
InetSocketAddress sockaddr = new InetSocketAddress(addr, 12345);
DatagramSocket socket = new DatagramSocket(sockaddr);
Что будет самым простым способомфильтровать широковещательные сообщения и получать только сообщения, отправленные непосредственно на мой ip?
РЕДАКТИРОВАТЬ: краткий ответ нет.Этот вопрос возник из-за архитектуры, в которой у нас была настраиваемая маршрутизация сообщений UDP, а некоторые узлы в подсети не обязательно вещали или интересовались вещаниями.Были и другие проблемы, и мы немного изменили архитектуру.