libevent源码分析1
libevent源码分析1
What_Dream 发表于1年前
libevent源码分析1
  • 发表于 1年前
  • 阅读 21
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: libevent是高性能网络库,安装及使用过程

我想成为大牛的必备要素是对各类开源软件有一定程度的了解

Linux是开源软件的圣地,我选择的开源软件首先是libevent,一个用C语言编写的、轻量级的开源高性能网络库。事件驱动( event-driven),高性能;轻量级,专注于网络,都是它的优点。具体可以参考:http://baike.baidu.com/link?url=q1ZDgAv8Z54OkI6IsdoO00vi338B_xIuif-2_VMKopp1zIIldgGDy1Uh4G6Ge8eRuh2CmQNvwAi7Dr8hRyLJKQ53mWlEQnyS2y0JxBmTV6m

先来了解一下libevent的安装过程:(在linux下)

在官网下载http://libevent.org,我下载了最新版本libevent-2.0.22-stable.tar.gz

tar -zxvf ibevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

./configure -prefix=/usr/libevent

sudo make

sudo make install

这样libevent库就安装到你的机器上了,编写一些简单的例子来验证一下

#include <stdio.h>  
#include <event.h>  
  
void onTime(int sock, short event, void *arg)  
{  
    printf("Game over!\n");  
  
    struct timeval tv;  
    tv.tv_sec = 1;  
    tv.tv_usec = 0;  
  
    // 事件执行后,默认就被删除,需要重新add,使之重复执行  
    event_add((struct event*)arg, &tv);  
}  
  
int main()  
{  
    // 初始化事件  
    event_init();  
  
    // 设置定时器回调函数  
    struct event evTime;  
    evtimer_set(&evTime, onTime, &evTime);  
  
    struct timeval tv;  // 1s后执行  
    tv.tv_sec = 1;  
    tv.tv_usec = 0;  
      
    // 添加事件  
    event_add(&evTime,&tv);
    // 循环派发事件  
    event_dispatch();  
  
    return 0;  
}  

保存为timer.c文件

gcc -o timer timer.c -levent

标签: libevent linux
共有 人打赏支持
粉丝 0
博文 1
码字总数 316
×
What_Dream
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: