完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用到该模块做的一个板子,给服务器上传数据。上位机用助手建立一个TCP服务器,板子先配置好后,主程序就一直给服务器上传数据(上传成功后没有反馈啊)
如果某种原因,服务器关掉一段时间后重启。那么做的板子(带ESP8266)还能给服务器上传数据吗?做的板子一直给着电的,而且也是在主程序中跑的。 如果在服务器停掉的时间段,板子给服务器上传数据不成功的话,有反馈吗??怎么判断上传数据不成功呢? |
|
相关推荐
2个回答
|
|
TCP连接成功/失败,是有返回值的。你根据这个做好重连机制,就行了。
|
|
|
|
这得看你的上位机TCP服务器重启时的处理机制。
(1) 如果你的上位机TCP服务器在关闭重启时,服务器后台会先主动切断TCP Client的套接字链接(正如你在调试助手里点击“断开”按钮那样,当你点击断开时,调试助手的后台)会给TCP客户端发送一个“断开”链接的通知。这个时候,TCP客户端(在你的例子里也就是ESP8266模组)就会监控到TCP链接被断开了,此时,如果你继续去发送,就会立刻报告链接断开之类的错误。 (2)如果你的上位机TCP服务器在重启时,比如异常重启,一般就不会(或者说来不及)向TCP客户端发送断开的通知。此时,虽然TCP服务器关机或复位了,但是TCP客户端这边是并不会知道该链接已经断开了的,此时如果你继续去请求ESP8266作为TCP客户端发送数据,TCP客户端依然会去发送,只是此时得不到ACK就会返回超时错误。或者一段时间超时后,看你的TCP客户端的处理机制,有可能会因为超时自动断开(删除)这个套接字,此时,你再去发送时才会返回被断开的错误。 因此,作为TCP服务器,为了确保及时地或许客户端已经断开(包括异常的情形),一般在TCP服务器端设置一个自动断开的超时时间,ESP8266作为TCP服务器时,支持这个超时参数的设置,如果不设置,就会很长,对于客户端的异常断开,不会准“实时的”监控到。 而作为TCP客户端(你这里的具体例子),如果你想让客户端及时的监控到服务器已经异常,可以启用Keep-Alive机制,提高对链接实际断开的实时监控。 供参考! |
|
|
|
只有小组成员才能发言,加入小组>>
7354 浏览 9 评论
2437 浏览 2 评论
为什么我用esp8266做TCP服务器网络调试助手一直连接不上去?
9537 浏览 3 评论
为什么我的ESP8266 AT指令一直返回error无法正常使用?
7373 浏览 0 评论
4195 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 11:35 , Processed in 1.007063 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号