龙空技术网

libevent介绍,实现一个简单的httpd服务

非知名运维 271

前言:

眼前朋友们对“qt调用libevent”都比较关心,朋友们都需要知道一些“qt调用libevent”的相关内容。那么小编也在网络上汇集了一些对于“qt调用libevent””的相关内容,希望咱们能喜欢,各位老铁们快快来了解一下吧!

Libevent 是一个基于事件触发的网络库。它提供一种机制,即当某个具体事件发生在一个文件描述符上或已经达到超时时,来执行某一个回调函数。此外,它也支持信号或定时器事件的回调。

Libevent 是为了取代在事件驱动的网络服务中的事件循环。应用程序只需要调用event_dispatch() 函数,然后动态添加和移除事件而不需要更改事件循环。

目前,libevent 支持/dev/poll、kqueue、Posix select、Windows select、poll 和 epoll。内部事件机制是完全独立的暴露的事件 API,对 libevent 简单的调整就可以提供新功能而不需要对应用进行重新设计。因此,libevent 允许便携式的应用开发,并且在操作系统层面上提供了可扩展行最强的事件通知机制。Libevent 还可用于多线程应用,既可以通过隔离 event_base,同一时间只允许一个线程访问它,也可以通过锁定共享的event_base,保证同一时间只有一个线程访问两种方式来实现。

Libevent 网络库可以在多个平台上编译,如Linux、*BSD、Mac OSX、Solaris、Windows等。

此外,libevent 还对网络IO缓存、套接字、过滤器、速率限制、SSL、零拷贝文件传输和IOCP 提供了支持。Libevent 还支持包含DNS、HTTP 和 RPC 在内的常用协议。

项目地址

下面附录一个简单的httpd服务的代码,当然它也只是输出一个hello world之外,什么都不能做。

编译

gcc -g main.c -o main -levent

标签: #qt调用libevent