Я хочу создать сокет Winsock UDP, который только отправляет данные клиенту. Я хочу, чтобы ядро выбрало для меня доступный порт. С другой стороны, я хочу указать, какой локальный IP-адрес использовать, поскольку у меня несколько сетевых устройств.
Я пробовал прочесать лабиринт вариантов сокетов, а также привязать порт в адресе сокета, установленном на 0, но безрезультатно.
Не прямое "HowTo", но я использовал библиотеку с открытым исходным кодом под названием "ACE (Adaptive Communication Environment") для всего моего программирования сокетов TCP и UDP и нашел ее очень полезной и мощной. Она использует подход "программных шаблонов" для обеспечения строительные блоки для решения вашей конкретной проблемы. Я смог использовать их инкапсуляцию UDP для подключения к заданному порту и получил ответы, отправленные на свободный порт, выбранный системой. В качестве альтернативы вы можете указать порт возврата, если хотите. ACE доступен здесь : Домашняя страница ACE
Ответ 4 · рейтинг -1 · Andrew Edgecombe
Когда вы говорите: "Я хочу указать, какой локальный IP-адрес использовать, поскольку у меня несколько сетевых устройств", вы имеете в виду, что хотите указать IP-адрес, или вы хотите указать nic и использовать связанный IP-адрес ?
Если вы пытаетесь указать nic, этот вопрос должен быть актуальным.