自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

转载 Libevent参考手册:连接侦听器: 接受 TCP 连接(八)

Evconnlistener 机制为您提供了侦听和接受传入的 TCP 连接的方法。这一节中的所有函数与类型都是在event2/listener.h中声明。他们首次出现在 Libevent 2.0.2-alpha,除非另有说明。创建或释放 evconnlistener接口struct evconnlistener *evconnlistener_new(struct even

2014-08-17 01:32:36 701

转载 Libevent参考手册:Evbuffers用于缓冲IO的实用工具(七)

Libevent的evbuffer功能通过实现一个字节队列,在队列末尾添加数据,在队列头移除数据。Evbuffers 是通常用来做缓冲网络 IO 的"缓冲区"部分。他们将不会提供安排 IO 或IO准备就绪时的触发等功能: 而这些功能是bufferevents应该做的。本章中的函数声明都在event2/buffer.h 中,除非另有说明。创建或释放 evbuffer接口struc

2014-08-17 01:32:11 909

转载 libevent参考手册:bufferevent:概念和入门(六)

很多时候,除了响应事件之外,应用还希望做一定的数据缓冲。比如说,写入数据的时候,通常的运行模式是:l  决定要向连接写入一些数据,把数据放入到缓冲区中。l  等待连接可以写入。l  写入尽量多的数据。l  记住写入了多少数据,如果还有更多数据要写入,等待连接再次可以写入。这种缓冲IO模式很通用,libevent为此提供了一种通用机制,即bufferevent。buffereve

2014-08-17 01:29:29 2285

转载 libevent参考手册:辅助类型和函数(五)

定义了很多在实现可移植应用时有用的函数,libevent内部也使用这些类型和函数。1 基本类型1.1 evutil_socket_t在除Windows之外的大多数地方,套接字是个整数,操作系统按照数值次序进行处理。然而,使用Windows套接字API时,socket具有类型SOCKET,它实际上是个类似指针的句柄,收到这个句柄的次序是未定义的。在Windows中,libevent定义e

2014-08-17 01:25:50 602

转载 libevent参考手册:与事件一起工作(四)

libevent的基本操作单元是事件。每个事件代表一组条件的集合,这些条件包括:l  文件描述符已经就绪,可以读取或者写入l  文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发IO)l  超时事件l  发生某信号l  用户触发事件所有事件具有相似的生命周期。调用libevent函数设置事件并且关联到event_base之后,事件进入“已初始化(initialized

2014-08-17 01:24:09 461

转载 libevent参考手册:创建event_base(二)

使用libevent函数之前需要分配一个或者多个event_base结构体。每个event_base结构体持有一个事件集合,可以检测以确定哪个事件是激活的。如果设置event_base使用锁,则可以安全地在多个线程中访问它。然而,其事件循环只能运行在一个线程中。如果需要用多个线程检测IO,则需要为每个线程使用一个event_base。Tip: [libevent的未来版本可能有event_

2014-08-17 01:22:43 782

转载 Libevent参考手册:与事件循环一起工作(三)

1 运行循环一旦有了一个已经注册了某些事件的event_base(关于如何创建和注册事件请看下一节),就需要让libevent等待事件并且通知事件的发生。接口#define EVLOOP_ONCE     0x01#define EVLOOP_NONBLOCK 0x02 int event_base_loop(struct event_base *base, int f

2014-08-17 01:21:46 518

转载 使用Libevent的快速可移植非阻塞网络编程:异步IO简介

大多数程序员从阻塞IO调用开始学习。如果调用在操作完成之前,或者在足够的时间已经过去使得网络堆栈放弃操作之前,不会返回,那么这个IO就是同步的。比如说,在TCP连接上调用connect()时,操作系统将一个SYN分组排队到TCP连接的另一端主机中。在收到来自对方主机的SYN ACK分组之前,或者在超时而决定放弃操作之前,控制不会返回到应用程序。这里有一个使用阻塞网络调用的简单客户端示例。它打开

2014-08-17 01:18:53 837

转载 Libevent参考手册:设置libevent(二)

4 锁和线程编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。libevent的结构体在多线程下通常有三种工作方式:²  某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。²  某些结构体具有可选的锁:可以告知libevent是否需要在多个线程中使用每个对象。²  某些结构体总是锁定的:如果libevent在支持锁的配置下运

2014-08-17 01:17:58 563

转载 Libevent参考手册:设置libevent(一)

#define EVENT_LOG_DEBUG 0#define EVENT_LOG_MSG   1#define EVENT_LOG_WARN  2#define EVENT_LOG_ERR   3#define _EVENT_LOG_DEBUG EVENT_LOG_DEBUG#define _EVENT_LOG_MSG EVENT_LOG_MSG#define _EVE

2014-08-16 21:36:58 659

转载 Libevent参考手册:前言

1  从一万英尺外看LibeventLibevent是用于编写高速可移植非阻塞IO应用的库,其设计目标是:v 可移植性:使用libevent编写的程序应该可以在libevent支持的所有平台上工作。即使没有好的方式进行非阻塞IO,libevent也应该支持一般的方式,让程序可以在受限的环境中运行。v 速度:libevent尝试使用每个平台上最高速的非阻塞IO实现,并且不引入

2014-08-16 21:26:44 477

原创 优秀博文

http://blog.csdn.net/xiaofei_hah0000/article/details/8984192

2014-08-15 12:18:07 821

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除