Отправьте широковещательную передачу UDP в Windows 7

У меня есть ПК с двумя сетевыми платами, подключенными к различным сетям (много размещенная настройка сети). Я хочу отправить широковещательные кадры UDP в обеих сетях. IP-адрес отправителей кадров должен быть IP-адресом адаптера, который используется для передачи кадра. Адрес назначения должен быть ОГРАНИЧЕННЫМ ШИРОКОВЕЩАТЕЛЬНЫМ АДРЕСОМ.

Приложение заказчика не должно работать с административными правами (контроль учётных записей не является acceptible).

Как я могу отправить эти кадры UDP в ОГРАНИЧЕННЫЙ ШИРОКОВЕЩАТЕЛЬНЫЙ АДРЕС (255.255.255.255)? Как я мог передать эти кадры к СЕТЕВОМУ ШИРОКОВЕЩАТЕЛЬНОМУ АДРЕСУ (x.y.z.255)?

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

5
задан harper 12 July 2010 в 14:08
поделиться

1 ответ

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

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

3
ответ дан 15 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: