Windows Server 2003 を実行している複数の NIC を備えたサーバーがあります。アプリケーションはマルチキャスト パケットを受信しますが、1 つのネットワーク インターフェイスからのみマルチキャスト パケットを受信する必要があります。参考になると思いますが、いくつか質問があります。
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;
}
まず、ネットワーク インターフェイス アドレスとして何を使用する必要がありますか? GetAdaptersAddresses api 関数を使用して取得できるネットワーク インターフェイスのローカル アドレス (ipconfig が返すものと同じ)、またはネットワーク インターフェイスのインデックスは?
第二に、これは実際にウィンドウで可能ですか、それとも時間を費やすだけですか?
更新 WSAJoinLeaf 関数について読みましたが、マルチキャストに NIC を 1 つだけ使用することはできないのではないかと思います。