Получение IP-адреса интерфейса, получившего UDP-пакет recvfrom () (Microsoft) - PullRequest
0 голосов
/ 27 октября 2011

Использование recvfrom () в сокете, связанном с INADDR_ANY на многосетевом ПК Microsoft.когда recvfrom () получает пакет UDP: как найти интерфейс (IP), который получил пакет?

1 Ответ

1 голос
/ 28 октября 2011

Нет способа узнать принимающий IP, когда один прослушивающий сокет привязан к нескольким IP. Вместо привязки одного сокета к INADDR_ANY, вы можете запросить список локальных IP-адресов аппарата, используя GetAdaptersInfo() и / или GetAdapterAddresses(), а затем создать отдельный прослушивающий сокет для каждого IP. Вы можете использовать getsockname(), чтобы узнать, к какому IP-адресу привязан данный сокет, но только когда этот сокет привязан к определенному IP-адресу, а не к нескольким IP-адресам.

...