libevent使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libevent使用相关的知识,希望对你有一定的参考价值。

开始研究libevent,使用的版本是2.0.22。

 

实现一个定时器:每2秒执行一次printf。

#include <stdio.h>
#include <stdlib.h>
#include <event2/event.h>
#include <event2/event_struct.h>
#include <time.h>

void timeout_cb(int fd, short event, void *arg) {
    printf("run timeout_cb\n");
    struct event *timeout = (struct event*)arg;
    struct timeval tv;
    tv.tv_sec = 2;
    tv.tv_usec = 0;
    // 重新添加定时事件(定时事件触发后默认自动删除)
    event_add(timeout, &tv);
}

int main(int argc, char **argv) {
    struct event_base *base = event_base_new();
    struct event timeout;
    struct timeval tv;
    tv.tv_sec = 2;
    tv.tv_usec = 0;
    event_assign(&timeout, base, -1, 0, timeout_cb, (void*) &timeout);
    event_add(&timeout, &tv);
    event_base_dispatch(base);
}

 参考资料:

libevent简介和使用

libevent源码深度剖析三

以上是关于libevent使用的主要内容,如果未能解决你的问题,请参考以下文章

一起读读libevent的源代码:Libevent 第一章 设置libevent

libevent源码分析-TCP服务端代码

libevent网络编程汇总

libevent源码剖析

知道任何使用 libevent 实现 HTTP 服务的小项目吗?

从源代码构建 libevent 时如何生成 PKG CONFIG 文件?