您的位置:首页 > 其它

通过多张网卡发送UDP多播(组播)数据

2009-05-20 18:39 225 查看
在具有多个网卡的机器上,如果想要从每个网卡发送UDP数据,一般的做法是:

针对每张网卡的每个IP都绑定一个SOCKET,然后发送的时候针对每个SOCKET都发送一次。

但是如果你要发送多播数据,在有的系统上(我所测试的Win2K),即使通过每个IP都发送了多播包,但是系统会自动选择一张默认的网卡来发送你的多播包。

这是你可以通过设置下面这个Socket选项来更改这种默认行为:

unsigned long addr = inet_addr("172.22.102.73");

setsockopt((*iter_Shadowtable_ip)->multicast_Socket.socket, IPPROTO_IP, IP_MULTICAST_IF, (char *)&addr, sizeof(addr));

其中,"addr"就是你想要发送多播包的网卡的一个IP。

你只需要在每次发送多播包之前都调用上面两句就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: