Приём UDP пакета из Mutlicast группы
От: AlexNek  
Дата: 17.01.17 23:05
Оценка:
Задача следующая:
Есть некоторое устройство подключаемое "кабелем к сетевой карте". Для работы нужно знать IP устройства (ну и порт, но он не меняется).
Появилась хотелка узнать IP устройства автоматом, как сделано в проге загрузки фирмваре.
Там идея простая — специальный UDP пакет рассылается всем и устройство отсылает в Mutlicast группу свой ответ в котором и есть IP.

Основная идея взята отсюда с заменой на IP4
https://msdn.microsoft.com/en-us/library/ekd1t784(v=vs.110).aspx

также важно использовать несколько другой вызов.
JoinMulticastGroup(groupAddress, networkCardAddress);

Проблема:
Wireshark показывает и присоединение к группе и отсылаемый пакет и принимаемый пакет. Пакет принимается по адресу "groupAddress".
Только вот прога никак не хочет принимать этот пакет из Mutlicast группы. Хотя отсылаемый пакет принять можно.
https://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.enablebroadcast(v=vs.110).aspx
Различных сетевых адаптеров на машинке много, выбран был тот к которому подключён кабель от устройства.

Перепробывал вроде уже все рекомендации "из гугла" — результат стабильно отрицательный.
Хотя правда, еще не пробовал отсылать пакет всем адаптерам — есть и такая рекомендация. Но что то не вижу смысла отсылать пакеты адаптерам виртуальных машин.

Главная непонятка, что приходящий пакет виден в Wireshark, а принять не получается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.