netconn连接结构体的解读

本文主要解析了lwip库中的netconn结构体,详细介绍了netconn在TCP/IP协议中的作用,及其作为应用程序接口的功能。同时,文章还探讨了netconn的状态管理和回调函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

netconn结构为lwip抽象出的描述一个连接供应用程序使用。

netconn api函数接口也对操作函数进行统一封装供使用。

netconn结构体

struct netconn
{
/** netconn 类型 */
enum netconn_type type;
/** 当前 netconn 状态 */
enum netconn_state state;
/** LwIP 的控制块指针,如 TCP 控制块、 UDP 控制块 */
union
{
struct ip_pcb *ip;
struct tcp_pcb *tcp;
struct udp_pcb *udp;
struct raw_pcb *raw;
} pcb;
err_t pending_err;/** 这个 netconn 最后一个异步未报告的错误 */
sys_sem_t op_completed; //信号量
/** 消息邮箱,存储接收的数据,直到它们被提取 */
sys_mbox_t recvmbox;
/** 用于 TCP 服务器上的请求连接缓冲区 */
sys_mbox_t acceptmbox;
/** 标志 */
u8_t flags;
#if LWIP_TCP
/** 当调用 netconn_write() 函数发送的数据不适合发送缓冲区时,
数据会暂时存储在 current_msg 中,等待数据合适的时候进行发送 */
struct api_msg *current_msg; 
#endif /* LWIP_TCP */
/** 连接相关的回调函数 */
netconn_callback callback;
}; 

netconn type类型

enum netconn_type {
  NETCONN_INVALID    = 0,
  /* NETCONN_TCP Group */
  NETCONN_TCP        = 0x10,
  /* NETCONN_UDP Group */
  NETCONN_UDP        = 0x20,
  NETCONN_UDPLITE    = 0x21,
  NETCONN_UDPNOCH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值