开发环境
python(编程语言)
linux(运行系统)
多网卡(数据网卡+有线网卡)
广播失败原因分析 (摘自:java 向网卡发送广播_java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题..._余木脑袋的博客-优快云博客)
一般情况下,我们向一个IP地址发送数据,我们并不需要指定用哪块网卡发送,因为目标地址明确,底层网卡驱动会帮我们选择合适的网卡发送数据,
广播,广播地址不是一个指向单一主机的地址,在没有明确的目标指向性的情况下,底层网卡驱动会选择找到第一块网卡做为默认网卡发送数据。如果这时这个默认网卡是一个虚拟网卡(比如我的电脑上装了虚拟机就有一块虚拟网卡),那么发送组播数据就没有真的通过物理网卡发出。而只能被自己接收到。因为这个原因,对于多网卡环境下,发送广播或组播包就必须要指定用哪块网卡发送。
解决方案 (摘自:java 向网卡发送广播_java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题..._余木脑袋的博客-优快云博客)
历所有物理网卡,在每一块网卡上都把组播或广播数据发送一遍,接收组播包时将要明确将每一块物理网卡加入到组播地址中。
示例代码
.....