UDP通信——广播

广播

向子网中多台计算机发送消息,并且子网中所有的计算机都可以接收到发送方发送的消息,每个广播消息都包含—个特殊的IP地址,这个IP中子网内主机标志部分的二进制全部为1。

  • 由一个udp的程序,通过这个程序发送消息,可以有多个接收端同时收到消息
    • 广播是一对多,1:N
      • 广播的数据要发送到广播地址上
      • 如果是1对1发送,使用的地址是这个接收端使用的实际IP地址
    • 广播需要使用—个特殊的广播地址
      • 192.168.x.255
        • x->代表的是一个网段
        • 点分十进制的最后一部分(最后—个字节)
          • 取值范围: 0-255,代表这个网段最多支持多少台计算机
    • 只能在局域网里边使用,广域网是不支持的
  • 通信流程
    • 数据发送端->只有一个
// 1.创建通信的套接字
int fd = socket(af_inet, sock_dgram, 0);
// 2.因为是主动发送数据,因此不需要手动绑定端口(随机自动绑定即可)
//		需要设置广播的属性,通过setsockopt()函数->不设置不能广播
setsockopt();
// 3.初始化接牧端的地址信息1l
//		IP地址:广播地址->192.168.x.255
//		port:接收广播的一端绑定的固定端口(被动接收数据的一方需要手动绑定端口)
sendto( );
//4.关闭套接字
close( );
  • 数据接收端->有N个
// 1.创建通信的套接字
int fd = socket(af_inet, sock_dgram, 0);
// 2.被动接受数据,需要手动绑定端口(广播数据发送到哪个端口,就绑定哪个端口)
bind();
// 3.接受数据
recvfrom( );
//4.关闭套接字
close( );

你可能感兴趣的:(#,udp通信,udp,linux,网络协议)