OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7636|回复: 8

用esp8266 通过透传 发送tcp的心跳包,长时间发送会出现busy p和ERROR

[复制链接]

44

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-7-1
在线时间
58 小时
发表于 2018-5-30 09:06:45 | 显示全部楼层 |阅读模式
1金钱
用esp8266 通过透传 发送tcp的心跳包,长时间发送会出现busy p和ERROR,这是什么原因 才会这样的,一般我方一晚上就会出现这样的现象。找了好久都没找到原因

最佳答案

查看完整内容[请看2#楼]

因为对于tcp任何一方都可以主动关闭连接,你连续运行这么长时间,如果中间因为网络问题,服务器超时主动关闭了连接,透传模式你是检测不到,就会出现esp8266的发送出错情况,这是不可避免的,所以不要想着可以不出现,而是如何解决,解决的办法其实也简单,我知道的解决办法有两种 1.用透传模式,检测到busy p或者ERROR就用+++退出透传,在重新走TCP的连接流程,进入透传在重新心跳循环就可以,如果退出透传也失败,可能8266已经 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1746
金钱
1746
注册时间
2015-6-11
在线时间
308 小时
发表于 2018-5-30 09:06:46 | 显示全部楼层
因为对于tcp任何一方都可以主动关闭连接,你连续运行这么长时间,如果中间因为网络问题,服务器超时主动关闭了连接,透传模式你是检测不到,就会出现esp8266的发送出错情况,这是不可避免的,所以不要想着可以不出现,而是如何解决,解决的办法其实也简单,我知道的解决办法有两种
1.用透传模式,检测到busy p或者ERROR就用+++退出透传,在重新走TCP的连接流程,进入透传在重新心跳循环就可以,如果退出透传也失败,可能8266已经无法正常处理指令了,就直接物理复位走重新上电流程即可
2.不用透传模式,走检测TCP连接状态 - (已经连接则跳过,未连接就重新连接) - 判断是否有数据发送 - (有数据发送数据并接收处理,无则发送心跳包)循环处理即可,若指令处理不正常则同上进行物理复位。
两种我都用过,长时间运行都没啥问题
回复

使用道具 举报

44

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-7-1
在线时间
58 小时
 楼主| 发表于 2018-5-30 10:22:07 | 显示全部楼层
好的 谢谢 我去试试
回复

使用道具 举报

44

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-7-1
在线时间
58 小时
 楼主| 发表于 2018-5-31 10:05:01 | 显示全部楼层
zc123 发表于 2018-5-30 09:06
因为对于tcp任何一方都可以主动关闭连接,你连续运行这么长时间,如果中间因为网络问题,服务器超时主动关 ...

怎么处理 8266 偶尔出现透传发送数据 不成功的显现,应为 在处理接受到tcp发送过来的数据后,要返回相应的状态,但是返回的时候 偶尔会发送不成功
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2018-5-31
在线时间
12 小时
发表于 2018-5-31 14:56:45 | 显示全部楼层
majay123 发表于 2018-5-31 10:05
怎么处理 8266 偶尔出现透传发送数据 不成功的显现,应为 在处理接受到tcp发送过来的数据后,要返回相应 ...

不成功就重发啊
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1746
金钱
1746
注册时间
2015-6-11
在线时间
308 小时
发表于 2018-5-31 15:07:58 | 显示全部楼层
majay123 发表于 2018-5-31 10:05
怎么处理 8266 偶尔出现透传发送数据 不成功的显现,应为 在处理接受到tcp发送过来的数据后,要返回相应 ...

网络通讯中不成功是有的,但绝对不会频繁,频繁的话就要查找问题了,如果只是很少次,按照楼上说的,你应用层做处理,重传或者直接丢弃按照应用分析实际处理
回复

使用道具 举报

44

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-7-1
在线时间
58 小时
 楼主| 发表于 2018-5-31 16:34:46 | 显示全部楼层
zc123 发表于 2018-5-31 15:07
网络通讯中不成功是有的,但绝对不会频繁,频繁的话就要查找问题了,如果只是很少次,按照楼上说的,你应 ...

重发是 做了  会5次 重发  每次发送都会是busy p。。。
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1746
金钱
1746
注册时间
2015-6-11
在线时间
308 小时
发表于 2018-5-31 16:59:25 | 显示全部楼层
majay123 发表于 2018-5-31 16:34
重发是 做了  会5次 重发  每次发送都会是busy p。。。

我说的重发不上让你直接重发,你要退出透传,重新连接tcp在重发,既然异常了,基本tcp连接都断了,你要重新连接才行
回复

使用道具 举报

4

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2017-10-16
在线时间
42 小时
发表于 2018-6-21 11:58:31 | 显示全部楼层
zc123 发表于 2018-5-30 09:06
因为对于tcp任何一方都可以主动关闭连接,你连续运行这么长时间,如果中间因为网络问题,服务器超时主动关 ...

检查TCP连接状态,TCP已经断开了,检查的连接状态还是连接状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表