【Ameba RTL8195开发板试用体验】+Ameba当UDP服务器端

  • 黄莨元
  • LV5工程师
  • |      2017-08-23 09:34:11
  • 浏览量 1147
  • 回复:0
本帖最后由 黄莨元 于 2017-8-23 10:16 编辑 大家好,我是两块,我正在试用Seeed Studio的Ameba RTL8195开发板,这款板子的开发环境是基于Arduino IDE环境的,在Ameba RTL8195的页面中,提供了大量的开发例程,本篇文章主要介绍如何将Ameba RTL8195开发板打造成UDP服务器,这款板子携带了大量的开发例程,而且是Arduino平台的,没有底层方面的设置,很适合新手入门物联网、学习WiFi的使用,接下来,笔者将详细介绍如何将Ameba RTL8195打造成UDP服务器端,并且对其进行简单的测试。一、UDP协议简介TCP协议大家都很熟悉,什么是UDP协议呢,很简单,百度就能出来了,下面的介绍是来源于百度。UDP协议简介:UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。与所熟知的TCP协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。二、使用Ameba RTL8195打造UDP服务器端Ameba RTL8195开发板的例程中有如何将Ameba RTL8195打造成UDP服务器端,其例程中所能实现的效果是,当UDP客户端发送信息到Ameba RTL8195服务器端后,服务器端回应一个相应的信息。首先在Arduino IDE平台中打开要测试的例程,如下所示打开成功后,如下所示,有相应的注释说明修改源码,并且将程序进行编译下载到开发板上,将Ameba RTL8195接入到网络,并且打造成UDP服务器端。修改好网络名称和网络密码后,将程序上传到Ameba RTL8195开发板中去,下载成功后,复位,WiFi网络被连接上,串口打印出连接的信息还有IP地址接下来,我们在PC端下载sokit软件,并且双击打开,创建UDP客户端,并且输入相应的IP地址和 端口号。接下来,发送数据进测试,在数据0那行,发送数据hello world,检查服务器端是否能正常接收和回应。另外,在串口端也能打印出来发送的数据在这里,就完成了Ameba RTL8195作为UDP服务器端的使用,同时,也完成了服务器端和客服端发送数据的测试,从测试结果来看,服务器端不仅能接收到客户端发送的数据,还能正确地作出回应,看来,测试是顺利完成了。三、代码分析接下来介绍几个重要的函数首先是开启Ameba 的UDP端口函数WiFiUDP.begin(port);port是要开启的UDP端口号,调用该函数,成功时返回1,失败返回0.接下来时等待客户端传输的资料函数UDP.parsePacket();成功时返回传输的字节,失败返回0再往下的是,获取客户端的IP和端口号函数WiFiUDP.remoteIP();获取客户端的IP,返回值是IP地址,4个字节WiFiUDP.remotePort();获取客户端的端口号,返回值为端口号再然后是,读取资料函数WiFiUDP.read();最后就是服务器端回传资料函数,需要使用3个函数完成此功能启动连接以将UDP数据写入远程连接WiFiUDP.beginPacket(hostName, port); WiFiUDP.beginPacket(hostIp, port);hostName:远程主机的地址。 它接受一个字符串或一个IP地址 hostIp:远程连接的IP地址(4字节) port:远程连接端口(int)成功时返回1,失败返回0。将UDP数据写入远程连接WiFiUDP.write(byte); WiFiUDP.write(buffer, size);Byte:字节大小Buffer:写入的数据Size:大小在将UDP数据写入远程连接后调用。 它完成了数据包的发送。WiFiUDP.endPacket();成功时返回1,失败返回0。以上这些函数就时例程中使用到的重要函数,也是通过这些函数,才能将Ameba RTL8195打造成UDP服务器端,并且接收到客户端发送的数据以及正确作出响应,在这里,使用Ameba RTL8195开发板搭建UDP服务器端的帖子就基本结束了。四、总结哈哈,又到了帖子总结的时候了,在此篇帖子中,笔者完成了使用Ameba RTL8195开发板搭建成UDP服务器端的测试,在测试当中,笔者通过PC端的UDP客户端向Ameba RTL8195开发板服务器端发送一定的数据,服务器端接收到数据后,做出一定的响应,并且在串口打印出接收的数据和客户端相关信息,笔者顺利完成了测试,并且学习了UDP协议,到最后,感谢云汉电子社区和Seeed Studio提供了笔者试用和学习Ameba RTL8195开发板的机会,笔者会认真努力完成测评的,谢谢。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子