UDP多网卡的广播

qinxiaogang 2010-06-22 03:46:53
我用CAsyncSocket类来做UDP的广播, 当存在2个网卡时, 广播总是发向其中一个网卡,另外一个网卡没有数据发送出去.
几个测试:
1. 禁止其中一个网卡, 则广播立即从另外一个网卡发出
2. 2个网卡在不同网段之内,可以在Create()时绑定网卡, 此时广播可以从指定网卡发出
3. 如果2个网卡在同一个网段之内, 无论如何绑定, 总是从其中一个网卡发出. 如2个网卡设置为192.168.1.170和192.168.1.251. 分别用如下3种方式绑定
Create( UDP_LOCAL_PORT, SOCK_DGRAM );
Create( UDP_LOCAL_PORT, SOCK_DGRAM, 0, "192.168.1.170" );
Create( UDP_LOCAL_PORT, SOCK_DGRAM, 0, "192.168.1.251" );
...
SetSockOpt( SO_BROADCAST, (char*)&bRet, sizeof(bRet) ); // 设置广播UDP
结果用 SendTo( buff, len, UDP_LINK_PORT ); 时总是从170的网卡发出.
----- 如何让它向两个网卡都发送呀?
...全文
554 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzl_2008 2010-06-25
  • 打赏
  • 举报
回复
分别绑定两个网卡, 各发一次.
2个网卡在不同网段时, 两个网段都可以收到数据
同一个网段时, 发两次意味着有两个相同的数据发出到同一网段, 接收方应作相应处理

18,358

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧