2009-03-20 3 views
2

Я работаю над проектом, который обнаруживает/настраивает удаленные устройства, используя широковещательные передачи UDP. У этих устройств могут быть еще не настроены IP-адреса, по крайней мере, нет, чтобы соответствовать сети, к которой они подключены. В настоящее время мы используем один sendto с целевым адресом 255.255.255.255. Это прекрасно работает в большинстве случаев, но на компьютерах Vista с несколькими сетевыми картами широковещательная передача, похоже, отправляется на один из интерфейсов. Как я могу заставить Vista отправлять трансляцию всем интерфейсам?UDP Broadcast on Multihomed Systems

ответ

2

Я лично никогда не видел, чтобы какая-либо система генерировала пакет для каждого интерфейса в ответ на один вызов sendto.

Лучшим вариантом было бы перечислить сетевые интерфейсы, определить правильную локальную широковещательную передачу и отправить отдельный пакет по отдельности через каждый интерфейс.

+1

Я не уверен, что ссылки локальных адресов будут работать, поскольку не все устройства имеют IP-адреса, настроенные для подсети ссылки. – megabytephreak

1

Перечислите интерфейсы и затем отправьте пакет один раз на каждый интерфейс.

1

У нас есть та же самая проблема, только мы не можем использовать широковещательные передачи подсети, как мы хотим их настроить. Если у устройства неправильный IP (вне нашего диапазона), отправка широковещательной передачи подсети никогда не будет принята его IP-стеком. Неприятная проблема, если мы не разрешаем DHCP ...

+0

На самом деле, у нас такие же проблемы – megabytephreak