将WCHNET_TCP_MSS由800修改到256后,web的login页面正常,登录进去的main页面就刷不出来
您好,由于包含http的数据很大,当减小MSS后,会导致包含http的数据不能被一包发完,但是我们的websever没有做这种分包接收的处理,导致无法正确识别http的请求,并做出应答,如果你想做一些复杂的网页,可以自己进行分包的处理。如果想节省RAM的话可以根据http内容适当减小HTML_LEN的数值
感谢您的回复!
我在将MSS减小后,如果我直接输入192.168.1.10/basic.html,网页刷新的很快而且正确;
输入192.168.1.10/main.html,网页就刷新的很慢,判断刷新main网页的函数
发现WCHNET_SocketSend的返回值还是对的。
这种情况该怎么知道数据是真的发送成功了。
2.我将刷新main页面的数据包分开发送,每次发送MSS大小。一共12包,连续发送10几包后,下一包检查返回值出错。我将len的值更新,多次发送后还是发不出去。就是这一包数据一直发不出去,是什么原因?是发送缓冲区一直被占用了?这个缓冲区应该怎么清。
您好,关于第一点,因为192.168.1.10/basic.html只包含一个表格,数据量小所以刷新的快,192.168.1.10/main.html包含很多图片,数据量大所以刷新的慢,关于第二点,因为websever在发送数据后会断开TCP连接,您连续发的话可能会在断开和重新连接之间,导致还没连接成功就开始发数据,所以数据会发不出去,您这边可以提供一下返回的错误码和测试环境,等上班的时候,我们这边会复现测试验证一下,后续可以通过邮箱联系我kx@wch.cn