美文网首页
Linux-C-10-libevent

Linux-C-10-libevent

作者: 秋风弄影 | 来源:发表于2017-06-30 00:11 被阅读0次

    Libevent介绍

    Libevent是一种适合于多平台的(Windows,Linux,BSD)多种平台的轻量级开源高性能事件触发网络库,在libevent内部使用select、poll、epoll等系统调用管理事件机制;

    Libevent的下载安装

    1、下载的网站在http://libevent.org
    2、下载之后使用./configure --prefix=/home/用户名/lib
    3、执行make
    4、执行make install
    然后再/usr/lib/libevent*.so 或者在/usr/lib64/libevent*.so或者在/usr/local/lib/libevent*.so可以找到这个库文件;

    libevent的构成

    libevent_core:表示所有核心的事件和缓冲功能,通常包含event_base以及evbufferbufferevent、以及各种工具函数
    libevent_pthreads:表示基于pthread可移植线程库的线程和锁,并且独立于libevent_core,这样程序使用libevent时,就不需要连接到pthread,但是使用多线程方式例外;
    libevent_extra:用于定义的是特殊的协议,例如HTTP,DNS,RPC;
    libevent:这个库已经不经常使用;

    Libevent的功能

    1、事件通知:当文件描述符可读可写时执行回调函数;
    2、IO缓存:缓存事件提供了输入输出缓存,能够自动的读入和写入,用户不必执行操作IO;
    3、定时器:定时器机制,在一定时间间隔之后调用回调函数;
    4、信号:触发信号,执行回调函数;
    5、异步的DNS解析:异步解析DNS服务器的DNS解析函数集;
    6、事件驱动的HTTP服务器:HTTP服务器;
    7、RPC客户端服务器框架:RPC服务器和客户端框架,自动的封装和解封数据结构;

    Rectory反应器模式

    应用程序提供相应的接口并且注册到reactor,相应的事件发生之后,rector自动调用相应的注册的接口函数(类似于回调函数)通知;

    简单的定时器

    event_init()
    evtimer_set():
    event_add():
    event_dispatch():

    TCP服务器

    event_base_new():
    event_set():
    event_base_set():
    event_add():
    event_base_dispatch():

    相关文章

      网友评论

          本文标题:Linux-C-10-libevent

          本文链接:https://www.haomeiwen.com/subject/ouomcxtx.html