完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
EthSKIII正在使用http_net开发和测试一些网页,这些网页包含动态变量并遇到“有趣的”行为。我只有几个简单的网页,其动态变量的数量与MCHP演示的数量大致相同。但是,我确实使用~inc:name.htm~构造来代替SSI命令来包含文件。我注意到网页不会出现在我的浏览器上,所以我检查了事件报告,看到(-6)作为index.htm文件的错误代码返回。转到http_net.h,我发现枚举为:/*文件解析错误:行太长*/TCPIP_HTTP_NET_EVENT_FILE_PARSE_ERROR=-6,这当然没有告诉我任何具体的信息,所以我必须使用http_net设置。我选择了“处理HTML、动态变量和二进制文件的缓冲区大小”。默认值为512,并将其更改为768。我还将用于动态变量处理的描述符的数量更改为20,并将用于完整动态变量名+args的最大大小更改为100。网页然后按预期工作。我在文档中找不到任何东西(惊讶!)这解释了这些设置如何与网页设计或TCP/IP栈的性能相关。作为进一步的黑客,我将缓冲区大小从768增加到1024,并且网页没有出现。这不是一个确定的测试,因为我尝试了一些其他的东西,但它确实表明了软件对这些设置的脆弱性。到目前为止,我的结论是使用HTTPNET是一门艺术,而不是一门科学。
|
|
相关推荐
4个回答
|
|
配置文件是这样说的:“//用于处理HTML、动态变量和二进制文件的缓冲区的大小。//对于动态变量文件,它应该能够容纳最长的HTML行大小,//包括CRLF!#define TCPIP_HTTP_NET_FILE_PROCESS_BUFFER_SIZE 512“所以如果发送一行可以处理的较长行就会失败,这里没有魔力。看起来很清楚,但是可能还可以改进。堆栈会提醒您发生了什么,所以我不会称之为无文档的特性或黑客。它不可能为应用程序可能具有的所有网页提供可用的设置。这就是为什么设置是保守的和小的。但是事件系统已经存在,正在工作,并警告您有问题。对于另一个失败的测试,可能发生了其他一些事情,不容易猜测:可能内存不足,等等。请让我们知道更多细节,我们可以调查。
|
|
|
|
是的,你是对的,它应该说HTTP线的大小,而不是HTML,因为它指的是HTTP服务器。HTTP标准要求标题行由CRLF分隔,这是服务器解析请求的方式。请注意并更正:)P.S。但是即使对于动态变量文件,解析也是根据行进行的,因此预期一行不会超过缓冲区容量,所以它可以是解析。
|
|
|
|
我在HTTPNET行为中绊倒了另一个“凸点”。我有自己版本的演示代码在V2Y03B下工作,但它在V2Y04下不工作。仔细检查了在MHC中可以找到的每个设置之后,我发现设备&项目配置->项目配置>XC32(全局选项)>xc32-ld>.>堆大小(字节)中的堆大小需要升级到64960。在默认堆大小为44,xxx的情况下,程序使用端口80(http)可以正常运行,但是当我使用端口443(https)时,程序会暂停(从未提供网页服务,并且没有出现错误)。
|
|
|
|
最有可能的问题是,wolfSSL内存分配失败,协商没有完成,等等,所以没有提供页面。wolfSSL有自己的设置来打开诊断/错误消息。
|
|
|
|
只有小组成员才能发言,加入小组>>
5244 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3209 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2260 浏览 5 评论
779浏览 1评论
672浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
598浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
682浏览 0评论
579浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:30 , Processed in 1.304480 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号