|
本帖最后由 68336016 于 2021-9-9 16:19 编辑
我用stm32+esp8266从局域网apache2服务器下载一个文件,几十KB至几百KB大小,通HTTP协议下载,因为apache2服务器支持分段下载,方便stm32处理。
- 请求头部添加如下字段,0-1024代表文件最前面的1025个字节
- Range: bytes=0-1024
- Range字段支持的写法
- Range: bytes=0-1024 获取最前面1025个字节
- Range: bytes=-500 获取最后500个字节
- Range: bytes=1025- 获取从1025开始到文件末尾所有的字节
- Range: 0-0 获取第一个字节
- Range: -1 获取最后一个字节
复制代码
我有两个无线路由器,用新WIFI和旧WIFI来区分吧(都是用2.4G连接ESP8266),离ESP8266距离都只有2,3米,没遮挡,两个WIFI都没什么设备连着。
无论ESP8266连新WIFI还是旧WIFI,都能一次性将几百KB的文件下载,不出错,新WIFI功能和信号应该都强得多,但是此时速度却慢一半,但是凑合也算正常。
HTTP分段下载时候,ESP8266连到旧WIFI时,大概率都能正确下载文件,说明ESP8266模块应该没什么问题。
ESP8266连到新WIFI时,问题就来了,有时发了几次HTTP请求,都过了十几秒钟,STM32都没收到任何从ESP8266透传过来的数据,再发送一次HTTP请求,之前那几次数据就凑一起都来了。
本来我分段下载每次就几百个字节,现在数据憋了很久凑一起发来,有时一次能收到4000多个字节,完全无法判断到底要憋多久才发来。
像是这个新WIFI导致的问题,某种缓存机制?但是我手机和电脑连它都很正常,搞不懂怎么回事。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|