User Tools

Site Tools


Sidebar

Go Back

Refresh

You are not allowed to add pages

Direct Link

library:centos:udp_port

UDP 端口监听

1. Windows 7 Python2.7 测试

1.1 多个应用程序(app)绑定同一常规(非组播)IP地址和端口

  1. 两个程序同时bind同一IP和端口,不报错,先运行的app可以接收数据,后运行的app收不到数据
  2. 关闭先运行的app,后继运行的app能接受收据
  3. 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 和相同端口

  1. 结果同上
  2. 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的相同端口

  1. 绑定常规IP地址的app收到数据,绑定0.0.0.0的app收不到
  2. 关闭绑定常规IP地址的app后,绑定0.0.0.0的app能接受收据
  • 推测:绑定指定IP地址比绑定通用(0.0.0.0)地址优先度高
UDP    0.0.0.0:8000           *:*
UDP    192.168.1.80:8000      *:*

1.4 多个应用程序(app)绑定同一组播IP地址和端口

  1. 不能bind组播IP,bind报错,只能设置socket的组播特性,监听0.0.0.0
  2. 发到指定IP(非组播)的数据,先运行的app可以收到,后运行的收不到
  3. 发向组播地址(224.0.0.1)的数据,所有app都能收到
  4. 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的相同端口

符合1.3的测试

2.4 多个应用程序(app)绑定同一组播IP地址和端口

  1. 1. 测试条件与1.4相同(同样绑定0.0.0.0),符合1.4的测试
  1. 2. 附加测试,Linux 可以绑定组播地址
  2. 3. 发到组播组的数据,监听组播地址和监听(0.0.0.0)的app都能收到
  3. 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:*    
library/centos/udp_port.txt · Last modified: 2022/05/02 00:32 (external edit)