文档章节

libevent源码分析1

What_Dream
 What_Dream
发布于 2016/10/05 19:11
字数 316
阅读 36
收藏 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信号处理注意点 libevent源码深度剖析十三——libevent信号处理注意点前面讲到了lib...

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

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

晨曦之光
2012/03/09
166
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

没有更多内容

加载失败,请刷新页面

加载更多

centos7 部署Apache服务器

centos7 部署Apache服务器 置顶 2017年09月05日 09:12:49 师太,老衲把持不住了 阅读数:19700 飞翔科技 2017-09-04 16:24 Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和...

linjin200
34分钟前
1
0
CENTOS7 搭建文件服务器:samba共享linux文件夹

一、安装samba: sudo yum install samba 二、配置samba共享目录 sudo vi /etc/samba/smb.conf [rpi_web_notebooks] comment = 树莓派jupyter notebook目录 path = /home/......

mbzhong
44分钟前
2
0
解析Nuxt.js Vue服务端渲染摸索

本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Nuxt.js 十分简单易用。一个简...

前端攻城老湿
53分钟前
4
0
深入解析React中的元素、组件、实例和节点

React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 React 中的元素、组件、实例和节点,是React中关系密切的...

前端攻城小牛
今天
5
0
菜鸟网络三面面经(java开发岗):Spring boot+JVM+线程池+中间件

一面 1、HaspMap底层原理?HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 2、由上题提到锁的问题 3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景 4、Java线程锁有哪些,各自的...

别打我会飞
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部