电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【Ameba RTL8195开发板试用体验】+Ameba当UDP服务器端
【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开发板的机会,笔者会认真努力完成测评的,谢谢。
本帖最后由 黄莨元 于 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
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
0
×
举报
举报人:
被举报人:黄莨元
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子