libevent介绍,安装及结合Eclipse CDT构建工程

介绍

libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue、 IOCP等系统调用管理事件机制。著名分布式缓存软件memcached也是基于libevent,而且libevent在使用上可以做到跨平台,而且根 据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。

 

主要组成

libevent包括事件管理、缓存管理、DNS、HTTP、缓存事件几大部分。事件管理包括各种IO(socket)、定时器、信号等事件;缓存管理是 指evbuffer功能;DNS是libevent提供的一个异步DNS查询功能;HTTP是libevent的一个轻量级http实现,包括服务器和客 户端。libevent也支持ssl,这对于有安全需求的网络程序非常的重要,但是其支持不是很完善,比如http server的实现就不支持ssl。

 

个人观点

小巧且功能强大,本人下载2.0.22版本,体积855.0 kB,编译安装完后,再打包,体积1.9M,比起java来说,这实在是太浓缩了。

 

环境

系统:Linux Min-Mate 17.2 32bit

IDE:  Eclipse IDE for C/C++ Developers Version: Mars.1 Release (4.5.1)

GCC:gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)

第一步

下载并解压libevent-2.0.22-stable.tar.gz

cd  libevent-2.0.22-stable

./configure --prefix=/home/lyb/lib   (实际目录自己定义去)

make

make install

至此安装完毕,可进入/home/lyb/lib目录下查看

 

第二步

配置环境变量LD_LIBRARY_PATH

用户目录下

vi .profile (当然也可以修改/etc/profile)

增加如下代码

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lyb/lib/libevent/lib

配置完毕后,就可以开始打开Eclipse构建自己工程了。

 

第三步

打开Eclipse CDT

新建工程后,按照下图添加Include 和 链接库

右键项目名称,Properties



 

 

完毕后,新建main.c,代码如下

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <event.h>
#include <evhttp.h>

void reqHandler(struct evhttp_request *req,void *arg)
{
	struct evbuffer *buf = evbuffer_new();

	// 发送响应
	evbuffer_add_printf(buf, "Thanks for the request");
	evhttp_send_reply(req,HTTP_OK,"Client",buf);

	evbuffer_free(buf);

	return;
}

int main(int argc,char **argv)
{
	short port = 8000;
	const char *addr = "192.168.0.119";
	struct evhttp *httpserv = NULL;

	event_init();
        // 启动http服务
	httpserv = evhttp_start(addr,port);

	// 设置回调
	evhttp_set_gencb(httpserv, reqHandler,NULL);
	printf("Server started on port %d\n",port);

	event_dispatch();

	return 0;
}

 

构建,然后执行,打开浏览器访问即可看到



 

至此已经使用libevent完成了一个简单的HttpServer的构建,至于如何实现类似Java Servlet的功能呢?

无非就是路径拦截,映射函数,调用执行罢了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值