From 4e75312a0f2d24f82feea255b6fb1b1ac2e84876 Mon Sep 17 00:00:00 2001 From: wangfq Date: Wed, 1 Jul 2026 14:06:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20CONNECT=20=E4=BA=8B=E4=BB=B6=E5=88=B0?= =?UTF-8?q?=E8=BE=BE=20TCP=5FLISTEN=20socket(1)=20=E8=80=8C=E9=9D=9E=20TCP?= =?UTF-8?q?=20socket(0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WCHNET 将 CONNECT 事件投递到 TCP_LISTEN 内部 socket (sock 1), 而非用户创建的 TCP socket (sock 0)。之前的路由只检查 socketid==g_json_socket_listen(0),遗漏了 sock 1。 修复: - NET_SSC_ENABLE=1 时同时路由 sock N 和 sock N+1 到 JSON handler - NET_SSC_ENABLE=0 时所有 socket 事件都路由到 JSON handler - tcp_json_handle_sock_int 移除 socket 限定,处理任意 socket 事件 --- vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c | 10 ++++++---- .../BLE/OnlyUpdateApp_Peripheral/APP/tcp_json_srv.c | 3 --- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c index 23c6c62..c162030 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c @@ -484,15 +484,15 @@ void WCHNET_DataManage(uint8_t id) */ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat) { +#if NET_SSC_ENABLE uint8_t i; - // Route JSON protocol socket events (same socket handles listen + data) - if (socketid == g_json_socket_listen) { + // Route JSON protocol socket events (both TCP + TCP_LISTEN internal) + if (socketid == g_json_socket_listen || socketid == (g_json_socket_listen + 1)) { tcp_json_handle_sock_int(socketid, intstat); return; } -#if NET_SSC_ENABLE g_net_state.intstat = intstat; if (intstat & SINT_STAT_RECV) //receive data @@ -539,7 +539,9 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat) g_net_state.flag = 1; // WCHNET_CreateTcpSocket(); } -#endif /* NET_SSC_ENABLE */ +#else /* !NET_SSC_ENABLE — all sockets belong to JSON handler */ + tcp_json_handle_sock_int(socketid, intstat); +#endif } diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/tcp_json_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/tcp_json_srv.c index 78f3048..694cecb 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/tcp_json_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/tcp_json_srv.c @@ -623,9 +623,6 @@ void tcp_json_srv_init(void) { } void tcp_json_handle_sock_int(uint8_t socketid, uint8_t intstat) { - // Only process events on our TCP listen/data socket - if (socketid != g_json_socket_listen) return; - // === CONNECT: client connected — configure recv buffer, init auth state === if (intstat & SINT_STAT_CONNECT) { WCHNET_ModifyRecvBuf(socketid, (uint32_t)g_json_wchnet_buf, RECE_BUF_LEN);