CH32F207跑官方WebServer例程,页面刷不出来

将WCHNET_TCP_MSS由800修改到256后,web的login页面正常,登录进去的main页面就刷不出来



您好,由于包含http的数据很大,当减小MSS后,会导致包含http的数据不能被一包发完,但是我们的websever没有做这种分包接收的处理,导致无法正确识别http的请求,并做出应答,如果你想做一些复杂的网页,可以自己进行分包的处理。如果想节省RAM的话可以根据http内容适当减小HTML_LEN的数值image.png


感谢您的回复!

  1. 我在将MSS减小后,如果我直接输入192.168.1.10/basic.html,网页刷新的很快而且正确;

    输入192.168.1.10/main.html,网页就刷新的很慢,判断刷新main网页的函数

    image.png

发现WCHNET_SocketSend的返回值还是对的。

image.png

这种情况该怎么知道数据是真的发送成功了。


2.我将刷新main页面的数据包分开发送,每次发送MSS大小。一共12包,连续发送10几包后,下一包检查返回值出错。我将len的值更新,多次发送后还是发不出去。就是这一包数据一直发不出去,是什么原因?是发送缓冲区一直被占用了?这个缓冲区应该怎么清。




      您好,关于第一点,因为192.168.1.10/basic.html只包含一个表格,数据量小所以刷新的快,192.168.1.10/main.html包含很多图片,数据量大所以刷新的慢,关于第二点,因为websever在发送数据后会断开TCP连接,您连续发的话可能会在断开和重新连接之间,导致还没连接成功就开始发数据,所以数据会发不出去,您这边可以提供一下返回的错误码和测试环境,等上班的时候,我们这边会复现测试验证一下,后续可以通过邮箱联系我kx@wch.cn



只有登录才能回复,可以选择微信账号登录