广播
理论
- 同时发给局域网中的所有主机,称为广播 (简单来说就是一个大喇叭,给所有人喊话)
- 只有用户数据报(使用UDP协议)套接字才能广播
- 一般被设计成局域网搜索协议
- 广播地址以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址,发到该地址的数据包被所有的主机接收
广播发送流程(可以基于udp协议代码更改)
- 创建用户数据报套接字
- 缺省创建的套接字不允许广播数据包,需要设置属性(setsockopt)
int on = 1;
setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
- 接收方地址指定为广播地址
- 指定端口信息
- 发送数据包
广播接收 流程
- 创建用户数据报套接字
- 绑定IP地址(广播IP或0.0.0.0)和端口
- 绑定的端口必须和发送方指定的端口相同