演示 Socket 连接的反复创建、连接、关闭循环,验证 lwIP 协议栈在多次重连场景下的稳定性。
预期行为
- 等待蜂窝网络就绪
- 进入重连循环,执行 RECONNECT_ITERATIONS (默认 30 )次迭代:
- 创建 TCP Socket
- 连接到 223.5.5.5:80
- 连接成功后执行 shutdown(SHUT_RDWR) 优雅关闭
- close 释放 Socket
- 每次迭代间隔 RECONNECT_DELAY_MS (默认 2000ms )
**日志输出示例**:
--- LwIP Reconnect Loop Start ---
Iteration 0: creating socket...
Iteration 0: Socket created, fd=0
Iteration 0: Attempting to connect to 223.5.5.5:80 (fd=0)...
Iteration 0: Connected (fd=0)
Iteration 0: Shutdown socket (fd=0)
Iteration 0: Closed socket (fd=0)
Iteration 1: creating socket...
...
--- LwIP Reconnect Loop End ---
编译和运行
cd examples/network/socket-reconnect
xt --target lm620/r4f4 fullclean build
注意事项
- 依赖 lwip 平台私有组件,仅支持 lm620 平台
- 本示例使用 lwIP 原生 API,不是跨平台的 xt_socket(跨平台 Socket)
- 可调整 RECONNECT_ITERATIONS (循环次数,默认 30 )和 RECONNECT_DELAY_MS (间隔毫秒,默认 2000 )
- 每次迭代都完整经历 socket → connect → shutdown → close 流程