JAVA: обнаружение себя при трансляции пакетов UDP - PullRequest
4 голосов
/ 11 марта 2012

У меня есть поток, который транслирует UDP-пакеты.У меня есть другой поток, который слушает те же трансляции.Это позволяет моему приложению обнаруживать другие экземпляры в сети.Однако у меня есть проблема, что, когда один экземпляр вещает, он берет себя в руки и думает, что он сам является другим узлом.Мой вопрос заключается в том, как можно НАДЕЖНО определить, что пакет был получен от вас, чтобы его можно было игнорировать?Я говорю надежно, потому что знаю, что вы можете вызвать setLoopbackMode (true) для ваших сокетов, чтобы предотвратить обратную петлю, но в соответствии с документацией API этот подход не всегда работает?

1 Ответ

3 голосов
/ 11 марта 2012

Проверьте IP-адрес источника. Если это эквивалентно вашему собственному адресу, откажитесь от пакета. Убедитесь, что вы проверили все возможные адреса источника, если не можете определить, с какого интерфейса вы отправляете.

...