先把三個(gè)問題列一下:
1、TCP接收的分包如何合并 ??
2、WEB Server占用內(nèi)存如何減少?64K都快被它用完了。
3、23年9月的例程如何才能正常工作 ?
問題1的具體情況:
我使用的是32V208RUB6,基于22年1月WCHNET_LIB_VER=15 版本例程上修改時(shí)發(fā)現(xiàn),
瀏覽器端請(qǐng)求包超過800字節(jié)后會(huì)被分包處理,造成后續(xù)包中的數(shù)據(jù)丟失(第一個(gè)包能被識(shí)別為HTTP數(shù)據(jù),分包后的數(shù)據(jù)被識(shí)別為ERR數(shù)據(jù))。
在數(shù)據(jù)接收函數(shù)中看不出和分包有關(guān)的處理
void WCHNET_HandleSockInt(u8 socketid, u8 intstat) {
? ? u32 len;
? ? if (intstat & SINT_STAT_RECV)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//receive data
? ? {
? ? ? ? len = WCHNET_SocketRecvLen(socketid, &bufAddr);
? ? ? ? printf("\r\n - - - - - WCHNET_SocketRecvLen %d? socket id %d\r\n", len, socketid);
? ? ? ? if (len) {
? ? ? ? ? ? WCHNET_SocketRecv(socketid, RecvBuffer, &len);
? ? ? ? ? ? DealDataflag = 1;
? ? ? ? ? ? socket = socketid;
? ? ? ? }
? ? }
特此請(qǐng)教該 如何合并分包?謝謝 !
分包數(shù)據(jù)有時(shí)候會(huì)在串口重復(fù)輸出多次:
HTTP Method=3? Post
URL name: success.html
提交的內(nèi)容__PMAC=1.2.3.4.5.6&__PSIP=192.168.1.10&__PMSK=255.255.255.0&__PGAT=192.168.1.1&__PMOD=1&__PSPT=1000&__PDIP=192.168.1.240&__PDPT=1000&__PUSE=admin&__PPAS?
?- - - - - WCHNET_SocketRecvLen 6? socket id 2
收到 6 字節(jié),addr=0x200015f8?
=12345
接收數(shù)據(jù)打印完畢
?
HTTP Method=0? Error
URL name: success.html
?- - - - - WCHNET_SocketRecvLen 6? socket id 2
收到 6 字節(jié),addr=0x200015f8?
=12345
接收數(shù)據(jù)打印完畢
?
HTTP Method=0? Error
URL name: success.html
TCP Disconnect
TCP Connect Success
問題3相關(guān)數(shù)據(jù):
23年9月18的版本上傳后不工作,沒能測試WebServer是否存在分包的問題。
23年9月18版本串口打印如下:但是網(wǎng)不通,無法PING通,無法打開 網(wǎng)頁
WEB SERVER
SystemClk:120000000
net version:18
WEB SERVER
SystemClk:120000000
net version:18
ip: 192.168.1.10.
mac addr: 1 2 3 4 5 6?
WCHNET_LibInit Success
SocketIdForListen 0
desport: 1000, srcport: 1000
desip:192.168.1.100
mode 1
__ASIP = 1.2.3.4.5.6
__ASIP = 192.168.1.10
__AMSK = 255.255.255.0
__AGAT = 192.168.1.1
__AMOD = 1
__ASPT = 1000
__ADIP = 192.168.1.100
__ADPT = 1000
__AUSE = admin
__APAS = 123
PHY Link Success
TCP Timeout
desport: 1000, srcport: 1000
desip:192.168.1.100
mode 1
TCP Timeout