Reactor框架(事件驱动式框架)代码总结

本文介绍了C++实现的Reactor事件驱动框架,包括三个关键结构体:事件结构体、事件块和Reactor结构。主函数流程涉及监听socket初始化、Reactor创建、事件处理循环以及资源释放。同时详细阐述了accept、recv和send的回调函数实现。
摘要由CSDN通过智能技术生成

1. 三个struct结构体

1. 事件结构体,每个fd对应一个event

struct ntyevent {

    int fd;        //每个event对应一个fd

    int events;        

    void *arg;

    int (*callback)(int fd, int events, void *arg);        //回调函数

   

    int status;

    char buffer[BUFFER_LENGTH];                读/写buffer

    int length;

    long last_active;

};

2. 采用一个数组挂一个链表的形式保存event块

struct eventblock {

    struct eventblock *next;

    struct ntyevent *events;//链表长度小于1024

};

3. reactor结构,一个reactor管理所有event

struct ntyreactor {

    int epfd;

    int blkcnt;

    struct eventblock *evblk; //fd --> 100w

};

2. 主函数流程

1. 初始化监听socket

int sockfd = init_sock(port); // socket, bind ,listenfd

2. 创建reactor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值