libevent网络库--bufferevent

1概念

1.1原理

  • bufferevent有两个缓冲区:也是队列实现只能读一次 先进先出
  • 读缓冲: 加入读缓冲有数据,会触发读缓冲对应的回调函数,在回调函数中不再使用read函数 只能使用bufferevent_read函数
  • 写缓冲bufferevent_write()向写缓冲写数据,这个写缓冲一旦有数据,就自动刷新–发送给对端,
    • 发送成功 write_cb()回被调用 —通知写数据完成。
    • libevent网络库--bufferevent_第1张图片

2操作函数

  • 头文件:#include

2.1创建

struct bufferevent * ev;
struct bufferevent *  bufferevent_socket_new(struct event_base *base, evutil_socket_t fd, int options);

2.1.1参数

No. 参数 说明
1 base 创建反应器返回指针
2 fd 封装到bufferevent内的fd
3 options BEV_OPT_CLOSE_ON_FREE关闭传输端口,关闭套接字,释放bufferevent

2.1.2返回值

  • 成功:返回创建的bufferevent事件对象

2.2释放

void bufferevent_free(struct bufferevent* bev);//bev:创建返回值

2.3给bufferevent事件对象设置读写回调回调函数

 void  bufferevent_setcb(struct bufferevent *bufev,//
                     bufferevent_data_cb readcb, //
                     bufferevent_data_cb writecb

你可能感兴趣的:(网络编程)