В сценарии, где я прослушиваю порт TCP через INADDR_ANY
, получаю клиентское соединение и теперь хочу принимать UDP-пакеты от этого соединения, как я могу определить фактический IP-адрес интерфейса, который маршрутизирует этому клиенту привязать сокет UDP к этому интерфейсу вместо INADDR_ANY? getsockname
моего прослушивающего сокета вернет INADDR_ANY
, насколько я понимаю, так есть ли какой-нибудь другой сокет API, который может предоставить эту информацию? Или я должен вручную сохранить таблицу маршрутов, в которой я пытаюсь разрешить каждый клиент, подключившись к нему (или отправить ARP на все интерфейсы и посмотреть, какой из них разрешает адрес?).