lwip运行一段时间后断网
时间: 2023-10-31 09:05:34 浏览: 310
LWIP死机的解决方案.doc
3星 · 编辑精心推荐
可能是因为lwIP的TCP/IP连接超时导致的。在lwIP中,默认情况下,TCP连接的超时时间是2小时,如果连接在这段时间内没有活动,则会自动关闭。这可能会导致您的应用程序在一段时间后断开连接。
您可以尝试在代码中增加以下语句来调整超时时间:
```c
#define TCP_KEEPIDLE_DEFAULT (60000) /* 60 seconds */
#define TCP_KEEPINTVL_DEFAULT (10000) /* 10 seconds */
#define TCP_KEEPCNT_DEFAULT (9)
tcp_keepalive(&pcb);
pcb->keep_idle = TCP_KEEPIDLE_DEFAULT;
pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT;
pcb->keep_cnt = TCP_KEEPCNT_DEFAULT;
```
这将把TCP连接的超时时间设置为60秒,并且每10秒发送一个探测包来保持连接。您可以根据需要调整这些值。
另外,您还可以尝试在代码中实现心跳包来保持连接。在长时间不活动的情况下,发送一个小的数据包,以保持连接处于活动状态。这样可以防止连接被超时关闭。
阅读全文