摘要: 本章描述的是Libevent的bufferevent实现的一些高级特性,这对于普通应用来说并非必须的。如果你只是学习如何使用bufferevent,则应该跳过本章去阅读evbuffer的章节。 一:成对的bufferevent 有时,网络程序可能需要与自己本身进行对话。比如... 阅读全文
posted @ 2015-02-01 20:31 gqtc 阅读(1271) 评论(0) 推荐(1)
摘要: 在头文件中定义了许多有用的函数和类型来帮助实现可移植的程序。Libevent在内部使用这些类型和函数。 一:基本类型evutil_socket_t 除了Windows之外的大多数系统,socket就是一个整数,而且操作系统按照数值顺序对它们进行处理。而在Window... 阅读全文
posted @ 2015-01-25 10:37 gqtc 阅读(2116) 评论(0) 推荐(0)
摘要: Libevents的基本操作单元是event,每一个event代表了一些条件的集合,这些条件包括:文件描述符已经准备好读或写文件描述符正在变为就绪,准备好读或写(仅限于边沿触发)超时事件信号发生用户触发事件 events都有类似的生命周期。一旦调用Libevent... 阅读全文
posted @ 2015-01-25 10:32 gqtc 阅读(403) 评论(0) 推荐(0)
摘要: 一:运行loop 一旦一些events在event_base注册之后(下一节会讨论如何创建和注册events),就可以使Libevent等待events,并且在events准备好时能够通知你。#define EVLOOP_ONCE 0x01#de... 阅读全文
posted @ 2015-01-19 21:53 gqtc 阅读(280) 评论(0) 推荐(0)
摘要: 在使用Libevent函数之前,需要分配一个或多个event_base结构。每一个event_base都持有一个events的集合,并且可以检测那些events是激活的。 如果设置event_base可以使用锁,那event_base是可以安全的在多线程环境中使用,... 阅读全文
posted @ 2015-01-18 19:11 gqtc 阅读(552) 评论(0) 推荐(0)
摘要: Libevent有一些整个进程共享的全局设置。这些设置会影响到整个的库。因此必须在调用Libevent其他函数之前进行设置,否则,LIbevent就会陷入不一致的状态。 一:Libevent中的日志信息 Libevent可以记录内部的error和warning信息,... 阅读全文
posted @ 2015-01-08 17:17 gqtc 阅读(431) 评论(0) 推荐(0)
摘要: 一:libevent概述: libevent是一个用来编写快速、可移植、非阻塞IO程序的库,它的设计目标是:可移植性、高效、可扩展性、便捷。 libevent包含下列组件: evutil:对不同平台下的网络实现的差异进行抽象; event、e... 阅读全文
posted @ 2015-01-06 16:52 gqtc 阅读(333) 评论(0) 推荐(0)
摘要: 一:异步IO简介 大多数的初级编程者都是从阻塞IO调用开始网络编程的。阻塞(同步)IO调用指的是:调用会一直阻塞,不会返回,直到发生下面两种情况之一。要么操作完成,要么经历相当长的时间,网络协议栈自己放弃。 比如,当在TCP连接上调用connect时,操作系统会发送SYN包到TCP的远端... 阅读全文
posted @ 2015-01-06 09:15 gqtc 阅读(815) 评论(0) 推荐(0)
摘要: 一:vi ,vim, gvim简介 vi的功能是最弱的,它是*nix操作系统下最基本的文本编辑器。 vim一开始的功能还不如vi,那个时候它的全称是“Vi IMitation”,即vi模拟器。1992年Vim被移植到了Unix和Dos上,Vim重命名为“ViIMprove... 阅读全文
posted @ 2014-12-16 09:42 gqtc 阅读(198) 评论(0) 推荐(0)
摘要: 一:下载mysql http://dev.mysql.com/downloads/mysql/中的Generally Available(GA) Releases标签页,在MySQL Community Server 5.6.19下的Select Platform中,选择Source ... 阅读全文
posted @ 2014-11-17 14:20 gqtc 阅读(128) 评论(0) 推荐(0)