fix: SocketCreat 0x1D — close后先跑WCHNET回收资源再creat

根因: WCHNET_SocketClose 异步, 资源在 WCHNET_MainTask 中释放.
      tcp_json_restart() close后立刻creat, 旧socket未回收→0x1D.
修复: close后循环5次 WCHNET_MainTask+HandleGlobalInt+Delay(10ms)
      确保资源释放后再 WCHNET_SocketCreat
This commit is contained in:
wangfq
2026-07-03 15:51:16 +08:00
parent b97afe22d5
commit c181839694
@@ -803,6 +803,18 @@ void tcp_json_restart(void) {
g_json_socket_listen = 0xFF;
}
/* 1.5 WCHNET 资源回收 — SocketClose 是异步的, 需跑一轮 MainTask */
{
uint8_t _retry;
for (_retry = 0; _retry < 5; _retry++) {
WCHNET_MainTask();
if (WCHNET_QueryGlobalInt()) {
WCHNET_HandleGlobalInt();
}
Delay_Ms(10);
}
}
/* 2. 重置状态 */
g_json_auth_state = JSON_STATE_WAIT_AUTH;
g_json_pwd_retry = 0;