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