关于TCP方式高速使用espconn_send的问题

magicboa
Posts: 1
Joined: Tue Apr 11, 2017 6:38 am

关于TCP方式高速使用espconn_send的问题

Postby magicboa » Tue Apr 11, 2017 6:52 am

乐鑫的工程师,你好:
最近在使用NONOS_SDK_V2.0.0版本时出现了这样的问题:
当未设置ESPCONN_COPY时,使用不判断回调函数时,espconn_send发送数据时会出现-7的错误,这个没有任何问题,因为底层包没有将数据发完。

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

kismet
Posts: 2
Joined: Wed Apr 19, 2017 8:52 pm

Re: 关于TCP方式高速使用espconn_send的问题

Postby kismet » Wed Apr 19, 2017 9:02 pm

您好,我想请问一下,使用ESP8266告诉发包的方法。

假如我想发送一个300KB的文件,使用espconn_send()来传输,因为SRAM只有那么大,所以分配了4KB作为缓冲区,每次用espconn_send()发送4KB的数据。

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

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

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

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

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

Who is online

Users browsing this forum: No registered users and 60 guests