У меня есть 3 сетевых интерфейса на моей машине (eth0-2), каждый из которых имеет свою собственную сетевую подсеть 192.168.10. , 192.168.20., 192.168.30. . Мне было интересно, как использовать сокеты BSD на порту для конкретного сетевого адаптера, например прослушивать порт 10000 для eth1 (192.168.20.). На данный момент у меня есть, что похоже на список/привязку только к eth0 , OS, которую я сейчас использую, - Ubuntu, но я хотел бы, чтобы решение работало/переносилось в любой системе posix.привязка к конкретному сетевому адаптеру в порядке posix
На стороне заметки Я разрабатываю свое приложение на C++ и буду признателен за некоторые рекомендации по сетевым библиотекам на C++, я взглянул на Qt, однако лицензия не подходит для типа разработки. Я делает.
Вы можете использовать `getsockname()` для определения локального адреса, который использовался для сокета, возвращаемого `accept()`. – caf 2010-11-24 08:29:48