最近一个项目里要用的UDP组播,UDP通信其实很简单,网上例子代码也数不胜数,但是在实际联调过程中发现我们项目中的联调主机是有4个网卡,有一对网卡是和另外两个物理隔离的(这个不重要),问题是在udp组播一直发送不到外部联调的笔记本上,摸索了很久发现了一个规律就是关掉其余三个网卡,这个网卡的UDP组播就可以正常通信了,这就显而易见了,就是在UDP组播时未指定网卡或本地IP地址发送才导致这个问题。
在摸索过程中就发现了Linux的强大的工具-nc命令,nc命令是一个功能强大的网络工具,由于工作中只用到了UDP组播,所以只做了UDP组播的研究,其他的话,可通过查询帮助文档(nc -h)
组播的测试命令是:
#echo "测试数据"|nc -s 指定收发的IP地址 -4u 组播地址 组播端口号
例子-echo “udp test” | nc -s 192.168.2.10 -4u 224.100.200.12 5512