网站建设 资讯动态,c2c模式的特点类似于现实商务世界中的跳蚤市场,wordpress英文切换,网站结构逻辑结构在上一个章节的UDP通信测试中#xff0c;尽管通信的实现过程相对简洁#xff0c;但出现了通信数据丢包的问题。因此#xff0c;本章节将基于之前建立的WIFI网络连接#xff0c;构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据#xff0c;测试网络通… 在上一个章节的UDP通信测试中尽管通信的实现过程相对简洁但出现了通信数据丢包的问题。因此本章节将基于之前建立的WIFI网络连接构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据测试网络通信中接收到的数据能够准确无误地回传。 本节课目标
在本次实验中我们将ESP32开发板与WiFi网络连接并配置实现UDP连接。核心任务是构建稳固的UDP连接机制确保通过网络调试助手发送数据并能准确回传接收数据验证UDP连接的可靠性和有效性。
本节课内容
network 与 socket 库的简介network库的构造与方法socket 库的构造与方法硬件设计软件设计下载验证
一、network 与 socket 库的简介
MicroPython 的 network 库与 socket 库皆为实现网络连接的重要工具它们各自拥有独特的功能性并共享某些共通特点。
作为 MicroPython 的一个关键第三方库network 库专门负责处理 WiFi 和网络连接的各项任务。通过此库用户能够成功接入无线网络查询当前网络状态以及实现数据的收发等功能。在 MicroPython 的架构下network 库扮演着促进设备间网络连接与通信的核心角色。
至于 network 库与 socket 库之间的主要差异则体现在它们的应用场景与功能侧重上。具体而言network 库侧重于设备的 WiFi 和基础网络连接功能的实现而 socket 库则聚焦于高级网络协议的连接建立与数据传输过程。因此在实际进行网络连接功能的设计与实施时需根据具体需求及所依赖的硬件平台谨慎选择并合理运用相应的库资源。
下面是MicroPython库的network 与 socket 库的链接。
network — 网络配置 — MicroPython latest documentation
socket – 套接字模块 — MicroPython latest documentation
类 WLAN – 控制内置 WiFi 接口 — MicroPython 最新文档
二、network.WLAN类的构造与方法
1. network.WLAN类的构造
构造对象方法如下
class network.WLAN(interface_id)
使用示例wlan network.WLAN(network.STA_IF)
参数描述如下 参数 描述 interface_id 支持接口 network.STA_IF作为客户端连接其他的服务器network.AP_IF作为服务器其他WiFi客户端连接
返回值WLAN网络接口对象
2. network.WLAN类的方法
1激活或停用网络接口
其方法原型如下
WLAN.active(is_active[ ])
参数描述如下 参数 描述 is_active True激活False作为服务器其他WiFi客户端连接
返回值无
2连接网络
其方法原型如下
WLAN.connect(ssidNone, passwordNone)
参数描述如下 参数 描述 ssid WiFi账号 password WiFi密码
返回值Ture连接成功Fail连接失败。
3关闭网络
其方法原型如下
WLAN.disconnet()
返回值无
4获取或者设置网络参数
其方法原型如下
WLAN.ifconfig((ip, subnet, gateway, dns)[])
参数描述如下 参数 描述 ip IP地址 subnet 子网掩码 gateway 网关 dns DNS服务器
返回值若此函数为无参数传入则返回连接网络的信息反次为设置网络参数。
以上是 network.WLAN 类常用的方法还有其他方法可参考 MicroPython 的在线文档。
三、socket 库的构造与方法
1. socket类的构造
构造对象方法如下
class socket.socket(afAF_INET, typeSOCK_STREAM, protoIPPROTO_TCP, /)
使用示例socket socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
参数描述如下 参数 描述 af 地址族 socket_AF_INETIPV4socket_AF_INET6IPV6 type socket类型 socket.SOCK_STREAMTCP类型socket.SOCK_DGRAMUDP类型 proto 网络协议 socket.IPPROTO_TCPTCP协议socket.IPPROTO_UDPUDP协议
返回值socket对象
2. socket类的方法
1关闭socket接口
其方法原型如下
socket.close()
返回值无
2socket绑定到地址
其方法原型如下
socket.bind(address)
参数描述如下 参数 描述 address IP地址字符串形式输入如‘192.168.1.100’
返回值无
3监听连接
用作于 TCPServer 连接。
其方法原型如下
socket.listen(backlog[])
参数描述如下 参数 描述 backlog 监听连接数量
返回值无
4接受连接
用作于 TCPServer 连接。注在此之前需监听连接
其方法原型如下
socket.accept()
返回值conn新的套接字对象用来收发消息address连接到服务器的客户端地址。
5连接远程IP地址
其方法原型如下
socket.connect(address)
参数描述如下 参数 描述 address IP地址字符串形式输入如‘192.168.1.100’
返回值无
6发送数据返回发送的字节数
其方法原型如下
socket.send(bytes)
参数描述如下 参数 描述 bytes 需发送的字节数据
返回值发送的数据字节数。
7接收数据返回值是一个字节对象
其方法原型如下
socket.recv(bufsize)
参数描述如下 参数 描述 bufsize 接收数据的存储区
返回值接收数据字节对象。
8接收数据返回值是一个字节对象
其方法原型如下
socket.recvfrom(bufsize)
参数描述如下 参数 描述 bufsize 接收数据的存储区
返回值bytes接收数据字节对象addressa套接字发送的地址数据。
9UDP发送数据一般用于UDP连接
其方法原型如下
socket.sendto(bytes, address)
参数描述如下 参数 描述 bytes 发送的数据 address 发送至哪个远程IP地址
返回值发送的数据字节数。
以上方法列出了本书中常用的套接字方法对于剩余的套接字方法请参考MicroPython最新的在线文档。
四、硬件设计
1. 例程功能
在本次实验中我们将ESP32开发板与WiFi网络连接并配置实现UDP连接。核心任务是构建稳固的UDP连接机制确保通过网络调试助手发送数据并能准确回传接收数据验证UDP连接的可靠性和有效性。
2. 硬件资源
WIFI ESP32内部自带WIFI模块
四、软件设计
1. 程序流程图 2. 程序
import network
import socket# 网络信息
SSID OrayBox-zsf # WIFI名称
PASSWORD 123456789 # WIFI密码
Server_IP 10.168.1.164 # 服务器IP地址wlan None # 定义一个无线网络
pos 0 # 状态机用于状态切换def connect():连接 WIFI 路由器global wlanwlan network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():print(connecting to network...)wlan.connect(SSID, PASSWORD)while not wlan.isconnected():passprint(network config:, wlan.ifconfig()) # 打印网络参数def goto(label):切换状态:param label: 状态号global pospos label
------------------------------------------------------------------------------------下面为主函数
------------------------------------------------------------------------------------# 1、连接 WIFI 路由器
connect()while True:# 循环while pos 0:# 状态 0 建立socket连接服务器# 2、获取本地 IP 地址并打印ip wlan.ifconfig()[0]print(network config:, ip)# 3、创建 TCP 套接字TCPClient socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建 TCPClient 对象IPV4 \ TCP 类型# 4、连接服务器如果成功就发送实验信息否则关闭连接套接字try:TCPClient.connect((Server_IP, 8080)) # 连接服务器即网络调试助手except BaseException:# 故障处理程序TCPClient.close() # 关闭套接字print( 关闭套接字 )goto(0) # 状态还是为 0连接服务器breakelse:TCPClient.send(************** ESP32 客户端 .encode() str(ip).encode() ****************\r\n.encode())goto(1) # 进入状态 1服务器连接成功与服务器通信while pos 1:# 状态 1 发送接收到的服务器数据try:# 接收到服务器的数据data TCPClient.recv(1024)print(data.decode())except BaseException:# 故障时关闭连接重新建立连接TCPClient.close()goto(0)breakelse:# 空数据时关闭连接重新建立连接if (len(data) 0):print(接收到空的数据)TCPClient.close()goto(0)breakelse:# 非空数据回显TCPClient.send(data)五、下载验证
将ESP32开发板与电脑通过WIFI路由器连接在同一WiFi网络中配置电脑上的网络调试助手TCP Server参数如下图所示并打开网络。 注意ESP32程序中TCP发送目标IP和端口信息按网络调试助手输入如下图所示。 运行ESP32程序网络调试助手会接收到ESP32的TCP信息如下图所示。 与ESP32通过TCP协议相互通信。【在TCP协议下的通信网络不佳时会出现传输延迟。与UDP协议相比TCP协议数据传输时丢包率更低。】 文章转载自: http://www.morning.znqfc.cn.gov.cn.znqfc.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.nwnbq.cn.gov.cn.nwnbq.cn http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.bswhr.cn.gov.cn.bswhr.cn http://www.morning.mtmph.cn.gov.cn.mtmph.cn http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.gfqj.cn.gov.cn.gfqj.cn http://www.morning.litao4.cn.gov.cn.litao4.cn http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn http://www.morning.hmjasw.com.gov.cn.hmjasw.com http://www.morning.lzbut.cn.gov.cn.lzbut.cn http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.sxfnf.cn.gov.cn.sxfnf.cn http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn http://www.morning.rymd.cn.gov.cn.rymd.cn http://www.morning.smtrp.cn.gov.cn.smtrp.cn http://www.morning.sftrt.cn.gov.cn.sftrt.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.xlmgq.cn.gov.cn.xlmgq.cn http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.qcygd.cn.gov.cn.qcygd.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.ghxkm.cn.gov.cn.ghxkm.cn http://www.morning.pswqx.cn.gov.cn.pswqx.cn http://www.morning.qnklx.cn.gov.cn.qnklx.cn http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.xkjrs.cn.gov.cn.xkjrs.cn http://www.morning.hcwjls.com.gov.cn.hcwjls.com http://www.morning.xpfwr.cn.gov.cn.xpfwr.cn http://www.morning.rnfn.cn.gov.cn.rnfn.cn http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn http://www.morning.mjglk.cn.gov.cn.mjglk.cn http://www.morning.kscwt.cn.gov.cn.kscwt.cn http://www.morning.rykx.cn.gov.cn.rykx.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.wphfl.cn.gov.cn.wphfl.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.gtbjc.cn.gov.cn.gtbjc.cn http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn http://www.morning.pgrsf.cn.gov.cn.pgrsf.cn http://www.morning.tnhg.cn.gov.cn.tnhg.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn http://www.morning.hlxpz.cn.gov.cn.hlxpz.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn http://www.morning.mjjty.cn.gov.cn.mjjty.cn http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn http://www.morning.blfgh.cn.gov.cn.blfgh.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.xflzm.cn.gov.cn.xflzm.cn http://www.morning.rgpy.cn.gov.cn.rgpy.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn http://www.morning.dygqq.cn.gov.cn.dygqq.cn http://www.morning.rzscb.cn.gov.cn.rzscb.cn http://www.morning.shuangxizhongxin.cn.gov.cn.shuangxizhongxin.cn http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn http://www.morning.fhrt.cn.gov.cn.fhrt.cn http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.nyplp.cn.gov.cn.nyplp.cn http://www.morning.epeij.cn.gov.cn.epeij.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn