ESP8266 Developer Zone The Official ESP8266 Forum 2017-04-19T21:02:48+08:00 https://bbs.espressif.com:443/feed.php?f=7&t=3798 2017-04-19T21:02:48+08:00 2017-04-19T21:02:48+08:00 https://bbs.espressif.com:443/viewtopic.php?t=3798&p=12404#p12404 <![CDATA[Re: 关于TCP方式高速使用espconn_send的问题]]>
假如我想发送一个300KB的文件,使用espconn_send()来传输,因为SRAM只有那么大,所以分配了4KB作为缓冲区,每次用espconn_send()发送4KB的数据。

发送成功一次就会进入一次回调函数,这样就跳出了发包的那个函数,无法重进。不知道您对于这种是如何处理大的?(我目前是采用的定时器,定时回调重进发包函数)

但是这种方法有个很严重的问题,就是多次使用espconn_send()后,会出现某些包并未发送成功。

如每500ms 上传4KB数据,多次后,就会偶尔出现一包出错。

经过反复测试发现,就算延长等待时间,调成每5s上传4KB数据,依旧存在上述出错的问题!!

请问,您有没有什么好的方法处理这种大文件高速传输?

Statistics: Posted by kismet — Wed Apr 19, 2017 9:02 pm


]]>
2017-04-11T06:52:56+08:00 2017-04-11T06:52:56+08:00 https://bbs.espressif.com:443/viewtopic.php?t=3798&p=12184#p12184 <![CDATA[关于TCP方式高速使用espconn_send的问题]]> 最近在使用NONOS_SDK_V2.0.0版本时出现了这样的问题:
当未设置ESPCONN_COPY时,使用不判断回调函数时,espconn_send发送数据时会出现-7的错误,这个没有任何问题,因为底层包没有将数据发完。

但是当设置ESPCONN_COPY时,espconn_send连接发送时,会明显提高发送的数据流畅性和速度,这个很好。同时也出现了一个问题,在函数连接发送错误时,TCP链路发送将不再能发送,而且也无法恢复到可发送。但是有时又在这个时候能出现TCP接收的回调函数是可以接收到的数据的。我试图用发送回调函数中作一些处理,使底层内存块可以减少冲击,但是高速发送的过程中,会出现发送成功的回调函数都无法成功。请问在这些问题下我需要如何处理,比如我要最快速度的完成一个1M文件的发送和接收。谢谢。

Statistics: Posted by magicboa — Tue Apr 11, 2017 6:52 am


]]>