libevent的使用

相关api:

1.// 启动libevent

event_base* m_base=NULL;

m_base = event_base_new();

2.创建http服务

evhttp* m_httpServer=NULL;

m_httpServer = evhttp_new(m_base);

3.绑定http服务的地址跟端口,可以重复调用,绑定多个端口

int ret = evhttp_bind_socket(m_httpServer, host, port);

4.设置回调,当http服务接收到请求的时候调用

void CGMThread::generic_handler(struct evhttp_request *req, void *arg);

evhttp_set_gencb(m_httpServer, &CGMThread::generic_handler, NULL);

5.回调处理,因为http服务是在另一个线程中,所以接收到请求,如果会修改数据,因为构造对象丢到逻辑线程里统一处理。

时间: 2024-11-06 11:23:35

libevent的使用的相关文章

Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(无数截图)

[文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成 Libevent 2.0.10 静态链接库,并利用 Libevent 静态链接库,实现一个简单的 HTTP Web服务器程序:httpd.exe. 假设 Visual Studio 2005 的安装路径为“D:\Program

1 Linux 安装 Libevent

Libevent官网:http://libevent.org/ 在线文档:http://www.wangafu.net/~nickm/libevent-2.0/doxygen/html/ 下载地址:https://github.com/libevent/libevent/releases/ 解压,编译,安装 创建文件夹 [email protected]:~$ mkdir libevent [email protected]:~$ cd libevent/ 解压文件: [email protec

浅谈libevent的使用--事件和数据缓冲

首先在学习libevent库的使用前,我们还要从基本的了解开始,已经熟悉了epoll以及reactor,然后从event_base学习,依次学习事件event.数据缓冲Bufferevent和数据封装evBuffer等,再结合具体的几个实例来了解libevent库的一些基本使用,有助于我们理解它的一些内部实现(由于之前我已经写过一篇epoll反应堆模型的,所以这里就不再介绍,直接从event_base开始介绍). libevent下载与安装: 在官网上找到 libevent-2.0.22-sta

libevent for qt网络模块

libevent for qt网络模块,直接替换qt的select模型,支持epoll,select,pool.使用非常简单,无需修改以前的代码结构 最近在开发im服务器,需要大并发链接.QT默认的是使用select模型的,这种轮询方式非常慢.在高并发连接,我们需要epoll才能发挥linux服务器的性能.而且使用简单,整个服务端代码架构无需修改,设置QT的分发事件就可以使用了,只要在main里面添加 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int main(int

libevent学习一

首先,libevent是个什么东西呢?通过阅读:官网. libevent:一个事件通知库.libevent的API提供了一个可以执行回调函数的机制.这些事件可以是一个文件描述符或到达指定时间.而且,libevent也支持由signals或常规的timeout产生的回调. libevent是用来替代网络服务器上的时间循环的.一个程序只需要去调用event_dispatch()然后去动态的增加或删除事件,而不用去改变事件循环. 目前,libevent支持/dev/poll, kqueue(2), e

libevent在windows下使用步骤详解

libevent是一个常用的网络库,下面就看看在windows下面编译测试的过程吧. 一 环境 系统:win8.1 编译器:VS2013 官方下载地址:http://libevent.org/ 版本:2.0.22-stable 二 编译静态库 1 解压 把上面下载到libevent-2.0.22-stable.tar.gz解压,得到libevent-2.0.22-stable文件夹 2 添加宏定义 在libevent-2.0.22-stable文件夹下找到下面三个文件: event_iocp.c

linux 基础学习编译安装php+mysql+python3+memcached+radis+rabbitmq+libevent+tcl+gcc+erlang

CentOS 6.9 编译安装 Nginx+PHP+MYSQL 0x01 环境约束 源码位置 /home/[用户文件夹] 源码编译安装位置  /usr/local/[软件名] CentOS6.9 x86 - 64 最小化安装 配置好网络 用户 使用Xshell登录 0x02 软件下载 内网地址: http://192.168.20.252/src/php.tar.gz http://192.168.20.252/src/cmake.tar.gz http://192.168.20.252/src

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

先贴一段代码再说,Linux下使用g++ -g-o server server.c -levent 可以直接使用gdb调试,而且可以跟踪到libevent的库里. 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <sys/socket.h> 5 #include <netinet/in.h> 6 #include <arpa/inet.h

libevent 信号事件实现方式

学会使用libevent,才能真正的掌握其是实现原理,我们先从一个简短的测试用例开始: 1 #include <sys/types.h> 2 #include <sys/stat.h> 3 #include <sys/queue.h> 4 #include <unistd.h> 5 #include <sys/time.h> 6 7 #include <signal.h> 8 #include <fcntl.h> 9 #i

libevent for qt的讨论

一直对Qt官方的QtNetwork模块抱有遗憾,Qt自带的网络模块用的是select模型,无法支持高并发的服务器开发.最近在网上看到有个libevent for qt的东西,它直接替换了Qt的select模型,支持epoll模型,所以就支持高并发了.这东西好啊,弥补了Qt的不足,也弥补了我的遗憾.我兴致勃勃的从网上下载了源代码(github地址:https://github.com/sjinks/qt_eventdispatcher_libevent),然后在windows上编译,结果每次都报错