当前博客:火山视窗安卓UDP协议多播技术之组播

316 次浏览【转载需注明来源】

博客作者:【灰羊羊】

个性签名:增强知识,努力学习

火山视窗安卓UDP协议多播技术之组播

本文作者:灰羊羊

一、

   1.上一篇文章我们介绍了UDP的广播技术,本文来介绍一下UDP的组播技术

   2.本文以三台安卓模拟器,一台主机之间搭建局域网,两台安卓模拟器加入组播239.0.0.188,另外一台模拟器和主机加入239.0.0.88,模拟发送组播数据

二、UDP三种数据转发模式简介

   ① 单播:是客户端与服务器之间的点到点连接。
   ② 广播:主机之间“一对所有”的通讯模式,广播者可以向网络中所有主机发送信息。广播禁止在Internet宽带网上传输。
   ③ 组播:主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,组播技术允许在公网上传输数据

   只有UDP才有广播、组播的传递方式;而TCP是一对一连接通信。多播的重点是高效的把同一个包尽可能多的发送到不同的,甚至可能是未知的设备。但是TCP连接是一对一明确的,只能单播。

二、组播简介

   UDP组播

   组播报文的目的地址是一个D类IP地址,源地址是自身IP地址。
   在ip组播中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。

   用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。

 

   UDP组播应用

   UDP组播应用广泛,比如说一场直播,主播一人在播,有一万人同时在观看,服务器是不会将数据复制1万份转发的,而是将一万人加上主播放入一个组内,也可以理解为是一个房间内,此时主播一个人通过扬声器向房间内喊话,所有人都听到了声音,接受到了数据。这样子节省了服务器的资源消耗,减少了网络的负担。

  

三、组播地址

 

   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组地址。本文使用到私有IP组地址。

四、火山和安卓代码

   1.代码和上一篇基本相同,需要改动的部分不多,只需更改转发模式,以及ip地址就可以了

   2.因为我们需要两个组播,上面代码编译之后,改一下ip地址与端口,编译组播地址为188的安卓apk

   3.成品

   4.启动模拟器,此处需要开启三个,同时设置桥接网络,此处和上一篇文章相同,设置好后,按组播地址安装apk文件。

五、网卡设置

   1.如果您有多张网卡,比如说下图这个样子,那么在调试时候,您需要将不用的网卡禁用掉,多个网卡共存消息堵塞

   2.本文以win11禁用网卡为例

右击网络图标,选择网络和internet设置

禁用掉您不需要的网卡。

 

 

 

五、GIF演示

六、附件下载

点击下载

 

 

 

 

火山视窗安卓UDP协议多播技术之组播