Использование фреймворка ACE с интерфейсом привязки

У меня есть сервер Linux с одним физическим интерфейсом eth0 и тремя виртуальными eth1, eth2, eth3. Сервер имеет 4 IP-адреса, необходимо использовать много IP-портов (более 100к). Сервер имеет bond0 интерфейс с 4 адресами, например .1, .2, .3 и .4. Мое приложение на базе ACE v5.5. Чтобы открыть локальный порт 1023, я использую класс ACE_SOCK_Dgram с аргументом ctor ACE_Addr = ACE_INET_Addr("0.0.0.0:1023"). Оно работает. Как открыть 1023 на другом локальном IP?

Спасибо.


person Jury    schedule 21.12.2011    source источник


Ответы (1)


Я нашел решение. Использование ACE_INET_Addr("x.x.x.1:1023"), ACE_INET_Addr("x.x.x.2:1023"), ACE_INET_Addr("x.x.x.2:1024") и т. д. в параметре ACE_SOCK_Dgram ctor позволяет вашему приложению использовать разные IP-адреса и разные порты. Вы можете управлять портом и адресом по своему усмотрению.

person Jury    schedule 29.12.2011