经验分享!断网怎么办?先搞懂TCP断链续连

电子说

1.3w人已加入

描述


一、TCP断链续连示例

TCP(传输控制协议)主要用于确保数据在网络中可靠传输。当TCP连接因网络问题、设备故障等原因断开时,需要重新建立连接以继续数据传输。

本文将通过Air201具体示例解析,教你使用LuatOS脚本语言实现TCP断链续连。

1.1 本教程实现的功能定义:

1)断链:

TCP连接断开,可能由于网络不稳定、设备故障等。

2)续连:

重新建立TCP连接,通常通过“三次握手”,过程如下:

客户端请求连接;

服务器响应并同意连接;

客户端确认连接建立。

1.2 核心脚本代码详解

1.2.1 串口初始化

本文示例:串口使用MAIN_UART(uart1)。

TCP


1.2.2 数据接收回调:搭建响应桥梁

这里使用uart.rx接口,和以zbuff的方式存储从uart1外部串口收到的数据--收取数据会触发回调。

注意:这里的"receive"是固定值不要修改。

TCP


1.2.3 TCP网络配置:铺就数据通道

注意:

如需要认证,SSL填写为true;不需要则填写为false。

TCP


1.2.4 TCP至串口透传:数据无缝流转

TCP


1.2.5 串口至TCP反透传:信息双向传递

TCP


1.2.6 断链续连

TCP

 

TCP

 

TCP


1.3 完整代码及运行结果

1.3.1 完整代码

TCP

 

TCP

 

TCP

 

TCP

 

TCP

 

TCP


1.3.2 运行结果

使用TCP/UDP web测试工具进行测试,LuaTools工具打印日志,可看到服务器断开后,重新连接成功。

如下图所示:

TCP

 

TCP


二、常见问题

sys.waitUntil("IP_READY") -- 等待联网成功

新入手的朋友可能看到此函数不太理解:

在整个脚本里面没有发布此事件sys.publish("IP_READY"),为什么后面还联网成功了?

此处解释一下:

在模组上电之后,固件内部联网成功会自动发布:

sys.publish("IP_READY")

今天的内容就分享到这里了~

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • TCP

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分