UDP 端口监听
1. Windows 7 Python2.7 测试
1.1 多个应用程序(app)绑定同一常规(非组播)IP地址和端口
两个程序同时bind同一IP和端口,不报错,先运行的app可以接收数据,后运行的app收不到数据
关闭先运行的app,后继运行的app能接受收据
netstat -an | findstr 8000 可见IP:PORT被监听多次
UDP 192.168.1.80:8000 *:*
UDP 192.168.1.80:8000 *:*
UDP 192.168.1.80:8000 *:*
1.2 多个应用程序(app)绑定 0.0.0.0 和相同端口
结果同上
netstat -an | findstr 8000 可见IP:PORT被监听多次
UDP 0.0.0.0:8000 *:*
UDP 0.0.0.0:8000 *:*
UDP 0.0.0.0:8000 *:*
1.3 多个应用程序(app)分别绑定常规IP地址和0.0.0.0的相同端口
绑定常规IP地址的app收到数据,绑定0.0.0.0的app收不到
关闭绑定常规IP地址的app后,绑定0.0.0.0的app能接受收据
UDP 0.0.0.0:8000 *:*
UDP 192.168.1.80:8000 *:*
1.4 多个应用程序(app)绑定同一组播IP地址和端口
不能bind组播IP,bind报错,只能设置socket的组播特性,监听0.0.0.0
发到指定IP(非组播)的数据,先运行的app可以收到,后运行的收不到
发向组播地址(224.0.0.1)的数据,所有app都能收到
netstat -an | findstr 8000 可见IP:PORT被监听多次
UDP 0.0.0.0:8000 *:*
UDP 0.0.0.0:8000 *:*
UDP 0.0.0.0:8000 *:*
2. Centos 7 Python2.7 测试
2.1 多个应用程序(app)绑定同一常规(非组播)IP地址和端口
与测试1.1完全相反
后运行的可收数据,先运行的不能接收数据,后运行的退出后,先运行的app可以接收数据
2.2 多个应用程序(app)绑定 0.0.0.0 和相同端口
2.3 多个应用程序(app)分别绑定常规IP地址和0.0.0.0的相同端口
2.4 多个应用程序(app)绑定同一组播IP地址和端口
1. 测试条件与1.4相同(同样绑定0.0.0.0),符合1.4的测试
2. 附加测试,Linux 可以绑定组播地址
3. 发到组播组的数据,监听组播地址和监听(0.0.0.0)的app都能收到
4. 发向指定地址(192.168.1.179)的数据,只有监听(0.0.0.0)的app能收到
[lhs@localhost ~]$ netstat -an | grep 8000
udp 0 0 0.0.0.0:8000 0.0.0.0:*
udp 0 0 224.0.0.1:8000 0.0.0.0:*
udp 0 0 224.0.0.1:8000 0.0.0.0:*