我是lwip小白,遇到问题,希望得到您的帮助。
F437裸机,创建两个TCP客户端。两个服务端通过上层软件实现。一个服务端与客户端正常连接,另一个服务端与客户端连接上之后,主动关闭连接。F437中10s检测连接状态,因为一个服务端主动断开连接,F437就会10s创建一次TCP客户端。等待3-4小时左右,进入err_t
tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags) 函数中的 /* Allocate pbuf with room for TCP header + options */ if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
pcb->flags |= TF_NAGLEMEMERR;
TCP_STATS_INC(tcp.memerr);
return ERR_MEM;
}
所以该函数 tcp_connect(pTcpPcb, &RemoteIPAddr, m_TcpClientAppInfo[Index].ServerPort, TCP_ClientConnected); 中TCP_ClientConnected不可正常进行。
请问是我内存没清理好吗?期待你的回答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
感谢原子哥
谢谢您的回帖
一周热门 更多>