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

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

博客作者:【灰羊羊】

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

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

本文作者:灰羊羊

一、

   1.关于火山PC和安卓之间HP_SOCKET使用TCP通信,以及UDP通信的文章比较常见,本文来介绍一下UDP的广播技术

   2.本文以两台安卓模拟器,一台主机之间搭建局域网,模拟发送广播数据

二、广播简介

   广播(broadcast)是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,由于路由器不能转发广播报文到其他网段,也就是说,一个广播报文可以经过的区域范围,称为“广播域”。

   目前而言,不支持的广播的链路已经很少了,不过广播技术只存在于IPV4网络中,在IPV6网络中,用多播技术取代广播

通常,广播都是限制在局域网中的。比如说,有四台设备,IP地址在 192.168.1.0 mask 24 网段内,则广播技术可以使一台设备同时向其他三台设备发送信息,并且只发送一次,就可以达到所有设备均收到信息,因此,合理的利用广播技术,可以使您的资源占用量更少。

 

三、PC端代码

   1.首先,新建MFC窗口项目,引入HPSocket通信支持库

   2.引入变量以及创建窗口组件,本文只需要这三个

   3.我们在窗口创建完毕事件下,启动UDP服务,在启动服务前,需要先设置数据转发方式,组播和广播数据转发方式不同,这里远端服务地址为设备所在的网段广播地址,本文设备所在网段为192.168.1.0 24位掩码,广播地址为192.168.1.255 ,此时我们使用端口为6785,当然您也可以使用其他端口来做广播端口,注意:知道一个广播源的IP,不知道广播端口,是不能接收到广播数据的,程序在底层就已经丢弃数据了

   4.在上面您已经发出来这和点到点UDP通信的区别了,点到点之间需要互指对方IP,才可以做到,广播则需要指定网段的广播地址

   5.添加事件,将编辑框的内容通过广播发送出去,代码不多,具体请您看代码

四、安卓代码

   1.和PC端大同小异,这里就不过多解释了

五、环境搭建

   1.这里让我们来选择最简单的方式,电脑和安卓手机连接家用胖AP的wifi,等待连接稳定之后,电脑cmd命令行输入ipconfig查看DHCP分配的IP地址,注意是WLAN里面的详细参数,如果您的wifi分配的网段地址不是192.168.1.0 ,比如说是172.16.1.0,则将上面代码中所有关于192.168.1.0的替换为172.16.1.0,其他网段同样的方式,不用看手机的IP,wifi从同一IP池中分配的ip是同一网段的

   2.如果,您使用的是安卓模拟器,那么来看这里,我以雷神模拟器为例子,同时,这里推荐您使用雷神模拟器,因为他是官方默认的,不能在项目里面指定模拟器端口号,此外,雷神模拟器支持桥接网络,其他模拟器我看了几款,均不支持,另外,您需要安装雷神3.0稳定版本的模拟器,新版本桥接网络驱动安装有问题

   2.按上图,开启桥接网络,开启之后,桥接网卡不会立刻显示,提示重启模拟器,重启完成后,进入wifi界面,点设置,查看ip,和电脑ip在同一网段,桥接完成

   3.同理,这里开启两台模拟器,一样的设置,第二台设备分配到的IP为192.168.1.10,这里是DHCP随机分配的,您做起来的结果可能与我不同

   4.到这里,已经完成了大半内容,下面来安卓程序,并且将安卓程序安装在模拟器内,运行,火山PC端需要用到调试输出,所以处于调试环境就可以了

六、GIF演示

七、附件下载

点击下载

 

 

 

 

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