今天跟大家分享一下,如何使用UDP来实现掌控板的广播功能。
首先我们先来简单了解一下UDP的相关知识。
什么是UDP?
- UDP协议,是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。(摘自百度百科)
从上面这个简介中,我们可以知道,UDP是一种数据传输协议,而且具有两个明显特性:无连接以及消息传输不可靠。
在使用UDP协议进行数据传输时,不需要建议连接,只需要知道接收方的IP地址和端口号就可以发送数据,由于协议不提供数据到达确认、排序等等一系列的数据传送保证机制,如果在数据传输过程中可能会出现数据包丢失,协议本身不会给提示,所以称之为消息不可靠。
这里我们粗略了解一下UDP的特性,知道这是一个数据传输的协议,具体协议定义这里就不展开讲了,有兴趣的可以自行查阅资料学习。
怎么使用UDP?
首先先要了解几个概念。
- 局域网
顾名思义就是局部地区形程的一个区域网络,可以理解成,一个路由器下的多个计算机串联构成一个局域网络,这里的计算机可以是任意能够连接wifi的设备,比如掌控板。路由器也可以是手机热点。
- IP地址
在网络下,每个设备都规定了一个唯一的地址,叫做IP地址。因为地址的唯一性,能够使设备间的通讯更加高效方便。
我们想要设备之间通过UDP进行通讯,首先需要这些设备在一个局域网下,这样每一个设备都有对应的IP地址。
这里的局域网,我们可以将设备挂在同一个路由器或者热点,也可以某一个设备发起网络,其他设备接入。
- 服务器端与客户端
从名字理解一下,服务器端就是提供服务的,客户端是使用服务的,此处不延展介绍。前面有提到使用UDP进行数据传输,需要知道对方的IP地址以及端口,这个端口就是服务器端提供的。
多个掌控板通过UDP通讯
通过上面的了解,我们来用三块掌控板做个实验。
三块掌控板ABC,局域网由任意一块板设置AP模式产生网络,让另外两块板加入到这个网络中,形成局域网。所以并不是一定要在服务器端产生wifi。当然,三块板子也可以加入到其他网络中,而不用自己产生wifi。
- B板建立wifi,AC板加入wifi形成局域网,同时B板也是一个客户端,需要配置连接服务器端IP地址及端口。
- A板作为服务器端,需提供本地IP地址,以及设置端口。
- C板作为客户端,需要配置连接服务器端IP地址及端口。
下面我们看一下具体代码配置。
理清UDP上面的相互关系,如果我们想要用掌控板与mind+实时模式通讯,那么应该怎么做呢?
首先mind+实时模式,网络属于电脑连接的wifi下,所以我们要将掌控板也连接到同一个wifi下,并且获取IP地址,将掌控板当作服务器端,配置服务器端IP地址及端口,实时模式作为客户端,这样就能够建立通讯。
到这为止,我们已经能够可以使用UDP进行通讯,再结合我们之前经常用的MQTT,两者配合,可以让我们的物联网项目更加丰富,这里不做延申,大家可以自行尝试一下。
|