文档章节

libevent源码分析1

What_Dream
 What_Dream
发布于 2016/10/05 19:11
字数 316
阅读 31
收藏 0

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

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

© 著作权归作者所有

共有 人打赏支持
What_Dream
粉丝 0
博文 1
码字总数 316
作品 0
武汉
私信 提问
libevent源码深度剖析

作者:http://blog.csdn.net/sparkliang/article/category/660506 libevent源码深度剖析十三——libevent信号处理注意点 2010-02-11 20:00阅读(1669)评论(6) libevent源码深度剖析PDF 2010-...

晨曦之光
2012/03/09
2.4K
0
libevent源码深度剖析

原文地址:http://blog.csdn.net/sparkliang/article/details/4957667 libevent源码深度剖析一 ——序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关...

晨曦之光
2012/03/09
145
0
Libevent使用例子,从简单到复杂

本文从简单到复杂,展示如何使用libevent。网上的许多例子都是只有服务器端的,本文里面客户端和服务器端都有,以飨读者。 关于libevent编程时的一些疑问可以阅读《libevent编程疑难解答》。...

mickelfeng
2017/08/18
0
0
libevent学习资料

<<libevent学习资料>> The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. ......

年少爱追梦
2016/11/17
12
0
Memcached源码分析之线程模型

一)模型分析 memcached到底是如何处理我们的网络连接的? memcached通过epoll(使用libevent,下面具体再讲)实现异步的服务器,但仍然使用多线程,主要有两种线程,分别是“主线程”和“w...

_Calix
2014/11/23
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
今天
2
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
2
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
3
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部