第四章 Linux套接字通信:12.UDP特性之组播(多播)

1. 组播的特点

组播也可以称之为多播这也是UDP的特性之一组播是主机间一对多的通讯模式,是一种允许一个或多个组播源发送同一报文到多个接收者的技术
组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。

  • 广播只能在局域网访问内使用,组播既可以在局域网中使用,也可以用于广域网
  • 发送广播消息的时候,连接到局域网的客户端不管想不想都会接收到广播数据,组播可以控制发送端的消息能够被哪些接收端接收,更灵活和人性化。
  • 广播使用的是广播地址,组播需要使用组播地址
  • 广播和组播属性默认都是关闭的,如果使用需要通过setsockopt()函数进行设置。

组播需要使用组播地址,在 IPv4 中它的范围从 224.0.0.0 到 239.255.255.255,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类:

IP地址 说明
224.0.0.0~224.0.0.255 局部链接多播地址:为路由协议和其它用途保留的地址,只能用于局域网内,路由器不会转发;其中 224.0.0.0 为保留地址,不可使用。
224.0.1.0~224.0.1.255 用户可用的组播地址(临时组地址),可用于 Internet 上的组播应用。
224.0.2.0~238.255.255.255 用户可用的组播地址(临时组地址),在全网范围内有效。
239.0.0.0~239.255.255.255 本地管理组播地址,仅在特定的本地范围内有效。
组播地址不属于任何服务器或个人,它有点类似一个微信群号,任何成员**(组播源)**往微信群(组播IP)发送消息(组播数据),这个群里的成员(组播接收者)都会接收到此消息。

2. 设置组播属性

如果使用组播进行数据的传输,不管是消息发送端还是接收端,都需要进行相关的属性设置,设置函数使用的是同一个,即:setsockopt()

2.1 发送端

发送组播消息的一端需要设置组播属性,具

你可能感兴趣的:(Linux系统应用开发,linux,udp,网络,java,服务器,数据库)