电子工程师技术服务社区
- 社区首页
- 下载
- libevent_test.tar.gz
资料描述
现在一般的物联网服务器都需要处理大量的socket链接。这些socket有个共同点:每次数据量不大,但是需要时刻保持连接。
如果采用同步socket(每个socket使用一个线程管理,那么服务器资源消耗非常大)。
处理这些socket的最佳方法是使用异步方法编写服务器端程序。而libevent库就是一个不错的选择。
libevent为异步网络库,使用c语言编写。
总体来说,libevent有下面一些特点和优势:
* 事件驱动,高性能;
* 轻量级,专注于网络;
* 跨平台,支持 windows、linux、mac os;
* 支持多种 i/o多路复用技术, epoll、poll、dev/poll、select 和kqueue 等;
* 支持 i/o,定时器和信号等事件;
这两天我的树莓派sd卡又坏了,不知道是sd质量原因还是其他原因。不想折腾了,把之前的beaglebone black拿出来玩,beaglebone black自带4gb emmc flash,什么时候树莓派要加一个就方便多了啊!
这些开源硬件都是运行的linux系统,从系统层面来说基本一致,不影响我们的学习。
从官网下载最新的稳定版libevent-2.0.22
http://libevent.org/
我在beaglebone black上进行测试,首先写个简单的定时器
1. 解压
tar -xzf libevent-2.0.22-stable.gz
cd libevent-2.0.22-stable
2. 编译
./configure
make
make install
编译执行
g++ -levent -o libevent_timer libevent_timer.cpp
运行
./libevent_timer
tcp 服务器测试
编译
g++ -levent -o libevent_tcp libevent_tcpserver.cpp
测