From 1a5f755bbf4728dc21eab149257b2e5b8a85ed70 Mon Sep 17 00:00:00 2001 From: wangxujie Date: Tue, 8 Jul 2025 16:35:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD-111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- User/application/src/tcpserverc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/User/application/src/tcpserverc.c b/User/application/src/tcpserverc.c index c010339..e1bcc64 100644 --- a/User/application/src/tcpserverc.c +++ b/User/application/src/tcpserverc.c @@ -34,7 +34,7 @@ static err_t tcpecho_recv_control(void *arg, struct tcp_pcb *tpcb, struct pbuf * if (p != NULL) { /* 更新窗口*/ - tcp_echo_flags_control = 1; + tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度 server_pcb_control = tpcb; // 直接赋值 memcpy(tcp_rx_data, (int *)p->payload, p->tot_len); @@ -93,6 +93,7 @@ static err_t tcpecho_recv_control(void *arg, struct tcp_pcb *tpcb, struct pbuf * } else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空 { + tcp_echo_flags_control = 0; return tcp_close(tpcb); } @@ -101,7 +102,7 @@ static err_t tcpecho_recv_control(void *arg, struct tcp_pcb *tpcb, struct pbuf * static err_t tcpecho_accept_control(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的 { tcp_recv(newpcb, tcpecho_recv_control); // 当收到数据时,回调用户自己写的tcpecho_recv - + tcp_echo_flags_control = 1; return ERR_OK; } void tcp_echo_init(void)