完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好 ESP8266/Lua 用户和社区!
我编写了一个(非常)简单的 Web 服务器,它根据请求从文件系统发送文件。 当然有 ara myny 图片,它们传输速度很慢。例如,50KBytes 的 jpg 文件将在 3-4 秒内发送,我认为这太慢了。 经过研究,我发现在 WIFI 网络上发送 1460 字节的数据需要大约 200 毫秒(!)。从调用 到调用发送确认函数 的时间。 我选择 1460 是因为它接近以太网数据包大小的最大长度(+ IP 开销)。发送数据的代码和我的测量点如下: --function sends file content to web function web_sendfile(localSocket, filename) local bytes_send = 0 local t1 = 0 local t2 = 0 -- 回调函数确认数据发送 local function web_sendfile_cnf(loc_socket) -->> 以微秒为单位获取第二个测试时间戳并打印测试差异 t2 = tmr .now() print( t2 - t1 ) -- 超过 200 000 微秒 ??? - 文件已存在? if nil==file.open(filename,"r") then loc_socket:close() return end -- 转到文件中的下一个位置读取 file.seek("set",bytes_send) -- 读取部分数据并关闭文件 local fd = file.read(1460) file.close() if nil~=fd then --增加发送字节数和发送数据 bytes_send=bytes_send+string.len(fd) loc_socket:send(fd) else -- 没有东西要发送,关闭套接字 loc_socket:close() end -- 释放内存 fd=nil collectgarbage( ); end-- 回调函数 -->> 以微秒为单位获取第一个测试时间戳 t1 = tmr.now() -- 发送 http header localSocket:send(cont_type, web_sendfile_cnf) end 它不依赖于连接模式(客户端或接入点) ),那个时间总是在 200ms 左右。 我希望这个社区包括经验丰富的用户,他们可以帮助我找到解决这个问题的方法。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1142 浏览 1 评论
578浏览 6评论
479浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
463浏览 5评论
464浏览 4评论
440浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:09 , Processed in 0.744910 second(s), Total 74, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号