【Linux学习笔61】广播与组播

引言

广播与组播,顾名思义就是一对多进行通信的关系。那么很容易理解就是,TCP是点对点的单播通信,只有UDP中才存在广播与组播。

广播

同时将数据发给局域网中的所有主机,称之为广播。

广播地址:
  • 以192.168.1.0(255.255.255.0)为例子,最大的主机地址为:192.168.1.255代表该网段的广播地址。因此我们能只需要发到该地址的数据包就可以让整个局域网的主机都接收。
  • 255.255.255.255在所有网段中都代表广播地址
广播的实现
  1. 创建用户数据报套接字(UDP)
  2. 设置套接字的属性(setsockopt)设置套接字属性允许广播
  3. 将接收方地址指定为255.255.255.255
  4. 指定端口信息
  5. 发送数据包
广播的代码实现:

发送方:
在这里插入图片描述
接收方:
【Linux学习笔记52】socket编程之UDP协议中的接收端代码一样

代码运行结果:

在这里插入图片描述

组播

  • 组播是介于单播与广播之间的一种方式,单播只能一对一,而广播则发给所有主机,过多的广播会大量占用网络带宽。
  • 组播作为一种折中的方式,只有加入某个组播的小组的主机才能接到数据。
  • 因此,组播完美的避开广播的负载,又解决了一对多的关系。
组播地址

在网络地址中,有这么的几类:(这里只介绍D类地址,详细百度一下)

  • D类地址,又称为组播地址。范围是:224.0.0.1-239.255.255.255
组播的实现
  1. 创建UDP套接字
  2. 加入多播组(setsockopt)
  3. 设置套接字属性

在这里插入图片描述

代码实现:

接收信息:

在这里插入图片描述
发送函数:
在这里插入图片描述

代码运行结果:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值