IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> netconn连接结构体的解读 -> 正文阅读

[网络协议]netconn连接结构体的解读

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_UDPNOCHKSUM= 0x22,   //无校验UDP
  /* NETCONN_RAW Group */
  NETCONN_RAW        = 0x40
};

netconn状态

enum netconn_state {
  NETCONN_NONE,   //不处于任何状态
  NETCONN_WRITE,  //正在写(发送)数据
  NETCONN_LISTEN, //处于监听状态
  NETCONN_CONNECT,//处于连接状态
  NETCONN_CLOSE   //处于关闭状态
};

netconn回调函数

typedef void (* netconn_callback)(struct netconn *, enum netconn_evt, u16_t len);

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 16:04:59  更:2021-12-11 16:06:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:15:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码