一、广播的概念
1、 广播其实就是给同一网段主机发送消息,属于"点对多"。
2、 广播特点
1)只有UDP协议才能使用广播属性。
2)广播并不是循环给每一个点发送数据,而是给广播地址发送消息。
3、 广播地址是哪个?
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:79:40:dd
inet addr:192.168.12.8 -> 当前主机的地址
Bcast:192.168.12.255 --> 当前广播地址 -> 就是代表所有的主机
Mask:255.255.255.0
客户端往广播地址"192.168.12.255"上发送消息,那么整个网段的所有主机都会收到!
主机A 主机B 主机C 主机D
客户端 服务器 服务器 服务器
192.168.12.255 -> 能够收到消息!
二、 如何使得客户端发送广播的数据?
在默认的情况下,套接字都是没有广播属性,需要手动调用接口添加该属性。
1)创建UDP套接字
int sockfd = socket(UDP协议);
2)给UDP套接字设置广播属性
setsockopt(sockfd,广播属性);
3)直接往广播地址上发送数据即可
inet_pton(AF_INET,“192.168.12.255”,&srvaddr.sin_addr);