最近比较忙,好久没更新了:今天我们看一下事件的监听方式,在linux下面事件的监听方式有三种select.poll.epoll,性能上面epoll最高,如果仅是最多监听十多个描述符,用啥无所谓,如果是几千个呢就非epoll不能胜任了. 对三种时间监听方式进行封装,由于行为相似因此都继承于一个抽象基类EventDispatcher:SelectDispatcher:使用select方式监听,PollDispatcher:使用poll方式监听,EpollDispatcher:使用epoll方式监听.…
上一篇我们封装了三种事件监听方式,如果分别提供给客户端使用,有点不方便,也不利于统一管理:我们再封装一层EventLoop. /*************************************************************************************** **************************************************************************************** * FILE   …
把linux平台提供的有关socket操作的API进行封装是有必要的:基于stream操作的流程与基于dgram操作的流程略有不同,分别放在两个类中,但两者又有很多相似的操作,因此写一个基类,让其继承自这个基类:基类起名为:CommBase,操作stream与dgram两个类分别起名为:StreamSock.DgramSock: /***********************************************************************************…
原文:http://blog.csdn.net/gdutliuyun827/article/details/8257186 由于工作与学习的需要,写了一个socket的事件处理框架,在公司写的已经使用了一段时间,下班后回家抽出时间又重写了一下,并进行了完善,起名为:sock_ev: 最近正在调试阶段,源代码暂且不提供,以防误人子弟,会尽快提供出来:先把最基本的测试程序贴上来,让感兴趣的同仁可以有个感性的认识,希望大家多加关注 支持以下功能:1.三种事件监听方式:select.poll.epoll…
前面分析了对socket基本操作的封装,并按照数据的传送方式写了两个类,本篇将写一个代理类提供给库的使用者使用的类. /*************************************************************************************** **************************************************************************************** * FILE      :…
在第一篇中,已经说明,传递的socket地址采取以下形式: [cpp] view plaincopyprint?stream://192.168.2.10:8080   dgram://192.168.2.10:8080   stream://unix.domain.ipc   dgram://unix.domain.ipc  stream://192.168.2.10:8080dgram://192.168.2.10:8080stream://unix.domain.ipcdgram://un…
上一篇已经做过注释,这一篇直接上代码 /*************************************************************************************** **************************************************************************************** * FILE      : server_test.cc * Description   :  *    …
写代码要有调试log,采用syslog的输出:一般会输出到"/var/log/messages" /******************************************************************************************************************************************************************************** FILE  : log_trace.…
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的. AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC.ORM.SOA.分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体.数据模型设计生…
前文在Win32平台上用C++实现了事件对象Event,对线程进行同步,以达到期望目的.这次在Linux平台上实现与之类似的事件对象.与其相关的一组API包括:pthread_mutex_init,pthread_cond_init,pthread_mutex_lock,pthread_cond_wait,pthread_mutex_unlock,pthread_cond_broadcast,pthread_cond_timedwait,pthread_cond_destroy,pthread_…