libevent简单的入门

8人阅读 评论(0) 收藏 举报
分类:

1.1 libevent简介

Libevent 是一个用C语言编写的、轻量级的开源高性能网络库。具有以下特点:

  • 事件驱动( event-driven)
  • 高性能
  • 轻量级
  • 专注于网络
  • 源代码相当精炼、易读
  • 跨平台,支持多种 I/O 多路复用技术,
  • 支持 I/O,定时器和信号等事件
  • 注册事件优先级

1.2 libevent安装

1)下载libevent源码,即从libevent官网下载(http://libevent.org/)。

2)解压

     #tar -zxvf libevent-2.1.8-stable.tar.gz

![图1](https://img-blog.csdn.net/20180417062204874?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0x1bGl4aWFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

3)进入libevent源码目录,配置:

    #cd libevent-2.1.8-stable
    #./configure --prefix=/usr

4)编译并安装

    # make && make install

    ![图2](https://img-blog.csdn.net/20180417063731718?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0x1bGl4aWFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

1.3 libevent简单使用

libevent简单定时器:

#include<iostream>
#include<event.h>

using namespace std;

static char data[1024] = "Hello libevent";
struct event ev;
struct timeval tv;
void Fun(int fd,short n,void *a)
{
    evtimer_del(&ev);
    evtimer_add(&ev,&tv);
    cout<<(char*)a<<endl;
}
int main(void)
{
    event_init();
    evtimer_set(&ev,Fun,data);
    tv.tv_sec =1;
    tv.tv_usec =0;
    evtimer_add(&ev,&tv);
    event_dispatch();
    return 0;
}

效果如下图:
图1

关于libevent源码,初次学习,仍需要多练习,多研究,多总结,多敲代码。

查看评论

libevent2入门例-简单的服务器(也有简短客户端)

libevent 库实在是轻量级,下面用不到百行代码,实现一个简单的服务器,其功能是在9995端口监听连接,有连接上来就给回复:“Hello, World!”。另外还添加了一个信号处理回调,当你按 C...
  • a172742451
  • a172742451
  • 2014-03-06 19:49:31
  • 6473

libevent入门和使用

libevent是什么?    libevnet是一个事件驱动框架,提供一种处理机制,当fd有事件发生或超时时执行回调函数;同时libevent支持posix信号和普通超时回调。libevent...
  • boshuzhang
  • boshuzhang
  • 2016-02-23 11:20:25
  • 1138

Libevent使用例子,从简单到复杂

本文从简单到复杂,展示Libevent的使用
  • luotuo44
  • luotuo44
  • 2014-09-29 15:17:55
  • 30972

libevent专题1-Libevent使用例子,从简单到复杂

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39670221         本文从简单到复杂,展示如何使...
  • bestone0213
  • bestone0213
  • 2015-07-02 17:26:49
  • 595

libevent学习---简单http server实现

libevent实现简单的http server
  • zhangxiao93
  • zhangxiao93
  • 2017-04-24 20:25:23
  • 934

libevent学习笔记 一、基础知识

1.   Libevent是什么? Libevent是一个轻量级的开源的高性能的网络库,被众多的开源项目使用,例如大名鼎鼎的memcached等。具有如下的显著的特点:事件驱动,轻量级(和ACE相比的...
  • majianfei1023
  • majianfei1023
  • 2015-06-14 16:27:11
  • 38178

libevent学习之三:简单的服务器和客户端

1.服务器#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;time.h&amp;gt; #include &amp;lt;event2/buffe...
  • caoshangpa
  • caoshangpa
  • 2016-10-17 16:26:06
  • 2723

libevent使用的简单案例

这篇文章介绍下libevent在socket异步编程中的应用。在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的...
  • bestone0213
  • bestone0213
  • 2015-07-03 17:27:31
  • 2004

使用libevent实现最简单的android http-server

其实就是把libevent sample 下的http-server.c 在android emulator 上跑起来 环境: libevent: libevent-2.0.12-stable sdk...
  • maikforever
  • maikforever
  • 2011-07-31 22:57:57
  • 3149

libevent简单实现

对epoll进行的封装epoll(7)还记得前段时间去百度面试,被问道select、poll、epoll的区别,机械式的把书本上看到的内容复述了一遍。面试官:谈谈你自己的理解。一时语塞,说道,epol...
  • zhangxiao93
  • zhangxiao93
  • 2017-04-12 09:52:02
  • 408
    个人资料
    等级:
    访问量: 780
    积分: 48
    排名: 180万+
    文章存档