UDP多网卡的广播
我用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的网卡发出.
----- 如何让它向两个网卡都发送呀?