libevent | 3.libevent应用带缓冲区的事件 —— bufferevent

本文介绍了libevent的bufferevent机制,它包含读取和写入缓冲区,当达到一定量的数据时触发回调。bufferevent通过事件管理器、套接字创建,提供读写回调函数,支持事件状态的启用、禁用和查询。同时,详细阐述了如何向缓冲区添加和移除数据,以及释放bufferevent资源和客户端连接服务器的实现。

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

  1. 头文件: #include <event2/bufferevent.h>;

  2. bufferevent的理解:
    (1).bufferevent是libevent为IO缓冲区操作提供的一种通用机制;
    (2).bufferevent由一个底层的传输端口(如套接字),一个读取缓冲区和一个写入缓冲区组成。
    (3).bufferevent在读取或者写入了足够量的数据之后调用用户提供的回调

  3. 回调-缓冲区对应的操作: 每个bufferevent有两个数据相关的回调
    (1).一个读取回调
    从底层传输端口读取了任意量的数据后会调用读取回调(默认)
    (2).一个写入回调
    输出缓冲区中足够量的数据被清空到底层传输端口后写入回调会被调用(默认)
    在这里插入图片描述 4. bufferevent的使用: (1).创建基于套接字的bufferevent: 函数:struct bufferevent * bufferevent_socket_new( struct event_base *base, evutil_socket_t fd, enum bufferevent_options options ); 参数: -base:事件管理器 -fd:socket套接字 -options:REV_OPT_CLOSE_ON_FREE 返回值:成功返回一个bufferevent,失败返回BULL;

    (2).bufferevent读写缓冲区回调操作:
    函数:void bufferevent_setcb( struct bufferevent * bufev, bufferevent_data_cb rea

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值