libevent

libevent 介绍

寵の児 提交于 2020-04-07 11:35:46
# libevent 2.0 介绍 libevent是一个用于开发可扩展性网络服务器的基于事件驱动模型的网络库. libevent具有几个显著亮点: 事件驱动,高性能 轻量级,专注于网络 跨平台,支持Windows, Linux, Mac OS等 支持多种I/O多路复用技术,epoll, poll, dev/poll, select和kqueue等 支持I/O,定时器和信号等事件 注册事件优先级 libevent是为了取代在事件驱动的网络服务器的事件循环.应用程序只需要调用 event_dispatch() 然后动态的添加和删除事件而不需要改变事件循环. libevent已经被广泛的应用,作为底层网络库;比如Memcached, Vomit, NetChat,Chromium等 标准用法 每一个使用libevent的应用程序必须包含 <event2/event.h> 头文件,并通过链接器连接 -levent .(相反的如果你只想链接主要的event或者基础的I/O缓冲区管理代码,不想链接其他的代码协议,可以使用 -levent_code ) 库设置 在你调用libevent库中其他函数之前,你首先需要设置库。如果你想在多线程应用程序中使用libevent,你需要初始化线程支持,通过使用 evthread_use_pthreads() 或者 evthread_use_windows

memcached高可用群集搭建

耗尽温柔 提交于 2020-03-26 10:40:09
memcached高可用群集搭建 我们需要三台服务器: 主服务器 192.168.247.206 从服务器 192.168.247.160 客户端 192.168.247.161 主服务器 配置memcached主缓存节点和从缓存节点 [root@lamp ~]# hostnamectl set-hostname master [root@lamp ~]# su [root@master ~]# [root@master ~]# mkdir /abc mkdir: cannot create directory ‘/abc’: File exists [root@master ~]# mount.cifs //192.168.254.10/linuxs /abc Password for root@//192.168.254.10/linuxs: [root@master ~]# cd /abc [root@master abc]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt [root@master abc]# tar zxvf memcached-1.5.6.tar.gz -C /opt [root@master abc]# mkdir /opt/magent [root@master abc]# tar zxvf magent

memcached高缓存搭建

此生再无相见时 提交于 2020-03-22 12:42:10
memcached高缓存搭建 搭建服务端和客户端,让服务端去链接客户端 web客户端:192.168.247.161 服务端:192.168.247.160 [root@localhost ~]# hostnamectl set-hostname client [root@localhost ~]# su [root@client ~]# [root@nginx ~]# hostnamectl set-hostname server [root@nginx ~]# su [root@server ~]# 搭建服务端 部署libevent 事件通知库 [root@server ~]# mkdir /abc mkdir: cannot create directory ‘/abc’: File exists [root@server ~]# mount.cifs //192.168.254.10/linuxs /abc Password for root@//192.168.254.10/linuxs: [root@server ~]# cd /abc [root@server abc]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt [root@server abc]# tar zxvf memcached-1.5.6.tar.gz -C

memcached安装步骤

試著忘記壹切 提交于 2020-03-17 01:28:37
某厂面试归来,发现自己落伍了!>>> 一:资源 memcached 官方网站: http://memcached.org/ memcached版本: memcached-1.5.4.tar.gz 依赖 libevent: libevent-1.4.12-stable.tar.gz libevent下载地址: http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz 二:安装 libevent-1.4.12 解压: tar zxvf libevent-1.4.12-stable.tar.gz -C /usr/local/ cd /usr/local/libevent-1.4.12-stable 编译安装,可以选择默认安装,也可以指定安装路径,默认安装路径为:/usr/local/lib,也可以指定其他路径,如:/lib/ 或 /usr/lib 或 其他路径。 此处指定安装路径为: /usr/libevent/ 在/usr/local/libevent-1.4.12-stable路径下执行 ./configure -prefix=/usr/libevent 执行完成后,执行 make 然后执行 make install 执行完成后,需要执行ldconfig命令,该命令的主要作用是在默认搜寻目录(/lib和/usr/lib

vc编译libevent

妖精的绣舞 提交于 2020-03-17 01:28:17
某厂面试归来,发现自己落伍了!>>>   假设 Visual Studio 2005 的安装路径为“D:\Program Files\Microsoft Visual Studio 8\”, Libevent 2.0.10 解压后的路径为“D:\libevent-2.0.10-stable”。    一、编译生成 Libevent 2.0.10 静态链接库。      1、修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10-stable\evthread_win32.c”、“D:\libevent-2.0.10-stable\listener.c”三个文件,在文件开头分别加上一行: #define _WIN32_WINNT 0x0500   2、鼠标点击Windows左下角的【开始】-【所有程序】,找到【Microsoft Visual Studio 2005】,执行下图中的脚本:      3、按照下图中的方法编译Libevent 2.0.10:      4、生成的“libevent.lib”、“libevent_core.lib”、“libevent_extras.lib”三个文件就是我们需要的 Libevent 静态链接库。    来源: oschina 链接: https://my.oschina

Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器

末鹿安然 提交于 2020-03-17 01:27:58
某厂面试归来,发现自己落伍了!>>> 本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成Libevent 2.0.10 静态链接库,并利用 Libevent 静态链接库,实现一个简单的 HTTP Web服务器程序:httpd.exe 假设 Visual Studio 2005 的安装路径为 D:\Program Files\Microsoft Visual Studio 8\ Libevent 2.0.10 解压后的路径为 D:\libevent-2.0.10-stable 一、编译生成 Libevent 2.0.10 静态链接库 1、修改 D:\libevent-2.0.10-stable\event_iocp.c D:\libevent-2.0.10-stable \evthread_win32.c D:\libevent-2.0.10-stable\listener.c 三个文件,在文件开头分别加上一行 #define _WIN32_WINNT 0x0500 */ /*--> */ 2、鼠标点击Windows左下角的【开始】-【所有程序】,找到【Microsoft Visual Studio 2005】,执行下图中的脚本: 3、按照下图中的方法编译Libevent 2.0.10: 4、生成的“libevent.lib”、

Windows下编译libevent步骤

混江龙づ霸主 提交于 2020-03-16 21:34:49
某厂面试归来,发现自己落伍了!>>> 1.下载libevent源码 http://libevent.org/ 2.进入libevent源码目录,编辑minheap-internal.h,加入 '#include "stdint.h"' 3. 执行nmake OPENSSL_DIR="D:\openssl" -f Makefile.nmake 来源: oschina 链接: https://my.oschina.net/u/3153397/blog/3196148

编译libevent

Deadly 提交于 2020-03-15 11:39:30
在编译libevent的时候,需要设置openssl路径 1: 设置openssl路径 ./configure CPPFLAGS="-I/usr/local/opt/openssl/include" LDFLAGS="-I/usr/local/opt/openssl/lib" 但是不知道为啥,最后还是编译失败, 可能是openssl版本也有要求? 不懂了,使用的版本为 1.1.1d 2: 禁止编译openssl 使用./configure --help 查看 ./configure --disable-openssl 重新make执行,没问题. 来源: oschina 链接: https://my.oschina.net/u/1538135/blog/3195238

libevent 相关资料

柔情痞子 提交于 2020-03-14 14:35:35
最近两天看了看libevnet 源代码~,主要学习资料是源代码libevent-2.0.21-stable、 Libevent是一个用于开发可扩展性网络服务器的基于事件驱动(event-driven)模型的网络库。Libevent有几个显著的亮点: (1)事件驱动(event-driven),高性能; (2)轻量级,专注于网络; (3)源代码相当精炼、易读; (4)跨平台,支持 Windows、Linux、*BSD和 Mac Os; (5)支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等; (6)支持 I/O,定时器和信号等事件; (7)注册事件优先级; Libevent 已经被广泛的应用,作为底层的网络库;比如 memcached、等等。 libevent 是Reactor 反应器模式。 源代码中总要的结构: 1、struct event_base. 主要控制结构,相当于Reacot模式中的reactor。 主循环,底层调用 epoll_wait()等 多路复用机制。 2、struct event . 事件处理程序的抽象(结构体中包含回调函数,由event_base 触发), 由event_base管理 。 event_base通过链表、二叉堆来管理event,用于优先级、定时器管理。 参考了以及下面几个博客

libevent源码剖析

Deadly 提交于 2020-03-14 14:33:40
安装与使用   libevent安装:下载地址: http://libevent.org/ 解压文件:tar -zxvf libevent- 2.1 .8-stable.tar.gz 解压后进入目录,进行配置,把库安装到/usr目录下: ./configure -- prefix= /usr 编译安装:sudo make,sudo make install   libevent将I/O事件、信号事件、定时事件三种事件进行了同一事件源,将所有的就绪事件,放入到激活链表中;然后对激活链表中的事件,调用事件的回调函数执行事件处理 一、event_base   The event_base lies at the center of Libevent; every application will have one.对应的为Reactor实例,使用 libevent 函数之前需要分配一个或者多个 event_base 结构体。每个event_base 结构体持有一个事件集合,可以检测以 确定哪个事件是激活的(相当于epoll红黑树的树根)。   因为不是所有的安插在event_base的事件在调用fork()之后都可以正常工作,所以,如果在使用fork()或者其他相关系统调用启动一个新的进程之后,要想在子进程中使用base变量,但是又想让该base变量是一个全新的没有安插事件的变量