我有多个 NIC 的服务器,运行 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 返回的相同)或网络接口的索引,我可以使用 GetAdaptersAddresses api 函数获得吗?
其次,这实际上可以在 Windows 上实现,还是我只是花时间?
更新 我刚刚阅读了有关 WSAJoinLeaf 功能的信息,我想知道,不可能只使用一个 NIC 进行多播。