Lwip使用RAW API进行TCP连接的tcp_err问题

现象:

TCP Server关闭状态下发起连接产生err,并且调用了回调函数tcp_err_fn,错误码是-14(ERR_RST)。在应用程序中调用tcp_close时出错。

c 复制代码
typedef void  (*tcp_err_fn)(void *arg, err_t err);
void tcp_err(struct tcp_pcb *pcb, tcp_err_fn err);

出错原因:

在连接上发生致命错误时会调用tcp_err_fn定义的回调函数。调用的目的是通知应用程序当前连接发生了致命错误,之后tcp的pcb会被自动释放。因此应用程序再次调用tcp_close时会导致访问已经被释放的内存导致出错。

在代码中可以看到使用TCP_EVENT_ERR宏调用回调函数后,会接着移除并释放pcb,此时应用程序只需要在tcp_err_fn回调函数中把pcb的指针置为NULL,防止错误的调用tcp_close函数。

相关推荐
老蒋新思维1 天前
创客匠人视角:智能体重构创始人 IP,知识变现从 “内容售卖” 到 “能力复制” 的革命
大数据·网络·人工智能·tcp/ip·创始人ip·创客匠人·知识变现
老蒋新思维1 天前
创客匠人:认知即资产 ——AI 时代创始人 IP 知识变现的底层逻辑
网络·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
白驹过隙^^1 天前
OB-USP-AGENT安装使用方法
数据库·经验分享·网络协议·tcp/ip·github·ssl
白帽子黑客罗哥1 天前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
北邮刘老师1 天前
【智能体互联协议解析】ACPs/AIP为什么还在用“落后”的“中心化”架构?
网络·人工智能·架构·大模型·智能体·智能体互联网
winfield8211 天前
MCP 协议详解
开发语言·网络·qt
sdszoe49221 天前
IP地址规划与VLSM技术
网络·网络协议·tcp/ip·vlsm·ip地址规划
m0_569531011 天前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
广东大榕树信息科技有限公司1 天前
当运维管理面临挑战时,如何借助动环监控系统提升响应能力?
运维·网络·物联网·国产动环监控系统·动环监控系统
狂奔的sherry1 天前
WIFI后端功能问题解决
网络