У меня есть сервер с несколькими сетевыми картами, работающий под управлением Windows Server 2003. Мое приложение получает многоадресные пакеты, но теперь мне нужно получать многоадресные пакеты только от одного сетевого интерфейса. Я думаю, что это может помочь, но у меня есть несколько вопросов.
ip_mreq mreq;
mreq.imr_multiaddr.s_addr = multicast group address
mreq.imr_interface.s_addr= network interface address
if (setsockopt( socet
, IPPROTO_IP
, IP_ADD_MEMBERSHIP
, (const void *)&mreq
, sizeof(mreq)) < 0)
{
std::cerr << "setsockopt error" << std::endl;
}
Прежде всего, что мне нужно использовать в качестве адреса сетевого интерфейса? Локальный адрес сетевого интерфейса (тот же, что возвращает ipconfig) или индекс сетевого интерфейса, который я могу получить с помощью функции API GetAdaptersAddresses?
Во-вторых, возможно ли это с окнами, или я просто провожу время?
Обновление
Я только что прочитал о функции WSAJoinLeaf, и мне интересно, что невозможно использовать только один NIC для многоадресных рассылок.