libevent 合集

    xiaoxiao2021-03-25  85

        libevent很好的翻译与解析 :http://blog.csdn.net/xyblog/article/details/50392094

        Libevent使用例子,从简单到复杂 http://blog.csdn.net/flyingleo1981/article/details/51823258

    1. timer程序:

    在使用libevent函数之前,首先需要调用其event_init函数进行初始化。 初始化过程主要是创建一个全局默认的current_base变量,其类型为 struct event_base。

    struct event_base对象变量可由eventn_base_new()函数创建并初始化。 libevent中,部分函数默认直接操作全局current_base,部分相同功能函数 可特别指定由event_base_new()创建的其他struct event_base变量,如: event_set()默认操作的全局current_base变量, event_base_set()则操作指定的event_base变量。

    event_init与event_base_new函数

    该函数将调用event_base_new()函数,创建并初始化一个struct event_base对象, 并将该对象赋值给全局变量current_base,作为全局默认的event_base。

    event_dispatch 可以参考下面:http://blog.csdn.net/yusiguyuan/article/details/18262151

    [cpp] view plain copy print?在CODE上查看代码片派生到我的代码片 #include<stdio.h> #include<event.h> #include <event2/bufferevent.h> #include <event2/buffer.h> #include <event2/listener.h> #include <event2/util.h> #include <event2/event.h> int lasttime; //这里是静态函数 static void timeout_cb(int fd,short event,void *arg) {//注意这里传递的参数对于定时事件来说fd=-1,event=0 struct timeval tv; struct event *timeout=arg; int newtime=time(NULL); printf("%s:called at %d:%d\n","timeout_cb",newtime,newtime-lasttime); lasttime=newtime; //下面三行重新注册tv时间 evutil_timerclear(&tv); tv.tv_sec=2; event_add(timeout,&tv); } int main(int argc,char *argv[]) { struct event timeout; struct timeval tv; event_init(); evtimer_set(&timeout,timeout_cb,&timeout);//设置定时器,这里evtimer_set是event_new的简写 evutil_timerclear(&tv); tv.tv_sec=2; event_add(&timeout,&tv); lasttime=time(NULL); event_dispatch();//事件主循环 return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-24173.html

    最新回复(0)