Отправить UDP-трансляцию на Windows 7 - PullRequest
5 голосов
/ 12 июля 2010

У меня есть компьютер с двумя сетевыми картами, подключенными к разным сетям (настройка многодомной сети).Я хочу отправить широковещательные кадры UDP в обеих сетях.IP-адрес отправителей фреймов должен быть IP-адресом адаптера, который используется для отправки фрейма.Адресом назначения должен быть адрес LIMITED BROADCAST.

Приложение клиента не должно запускаться с правами администратора (UAC неприемлемо).

Как можно отправить эти кадры UDP на адрес LIMITED BROADCAST(255.255.255.255)?Как я могу отправить эти кадры на адрес NETWORK BROADCAST (xyz255)?

Я знаю, как это сделать с необработанными сокетами.Но необработанные сокеты могут использоваться только с правами администратора.

1 Ответ

3 голосов
/ 13 июля 2010

Разве вы не можете просто открыть два обычных сокета UDP и привязать по одному к каждому из адресов интерфейса, а затем просто отправить по широковещательным адресам?

Это, насколько я знаю, будет иметь дело с отправкой в ​​обеих сетях и будет гарантировать, что отправленные пакеты будут иметь правильный IP-адрес.Это не сработает, если вы привяжете один сокет к INADDR_ANY, который, конечно, БУДЕТ работать, если в машине есть только один сетевой адаптер.Чтобы создать законченное решение, вероятно, лучше всего перебрать доступные адреса и создать сокет для каждого, привязать к каждому и отправить с каждого.

...