摘要:
最近比较忙,好久没更新了;今天我们看一下事件的监听方式,在linux下面事件的监听方式有三种select、poll、epoll,性能上面epoll最高,如果仅是最多监听十多个描述符,用啥无所谓,如果是几千个呢就非epoll不能胜任了。对三种时间监听方式进行封装,由于行为相似因此都继承于一个抽象基类E... 阅读全文
摘要:
前面分析了对socket基本操作的封装,并按照数据的传送方式写了两个类,本篇将写一个代理类提供给库的使用者使用的类。/*************************************************************************************** ***... 阅读全文
摘要:
把linux平台提供的有关socket操作的API进行封装是有必要的;基于stream操作的流程与基于dgram操作的流程略有不同,分别放在两个类中,但两者又有很多相似的操作,因此写一个基类,让其继承自这个基类;基类起名为:CommBase,操作stream与dgram两个类分别起名为:Stream... 阅读全文
摘要:
在第一篇中,已经说明,传递的socket地址采取以下形式:[cpp] view plaincopyprint?stream://192.168.2.10:8080 dgram://192.168.2.10:8080 stream://unix.domain.ipc dgram://unix.doma... 阅读全文
摘要:
写代码要有调试log,采用syslog的输出;一般会输出到"/var/log/messages"/*****************************************************************************************************... 阅读全文
摘要:
上一篇已经做过注释,这一篇直接上代码/*************************************************************************************** *******************************************... 阅读全文
摘要:
原文:http://blog.csdn.net/gdutliuyun827/article/details/8257186由于工作与学习的需要,写了一个socket的事件处理框架,在公司写的已经使用了一段时间,下班后回家抽出时间又重写了一下,并进行了完善,起名为:sock_ev;最近正在调试阶段,源... 阅读全文
摘要:
第一部分牛刀小试:启动GDB开始调试1. 编译带调试信息的可执行程序:用gcc(g++)编译的时候带上-g选项即可2. 启动GDB开始调试(1)gdb program ///最常用的用gdb启动程序,开始调试的方式(2)gdb program core ///用gdb查看core dump文件,跟踪... 阅读全文
摘要:
查看栈信息 当程序被停住了,首先要确认的就是程序是在哪儿被断住的。这个一般是通过查看调用栈信息来看的。在gdb中,查看调用栈的命令是backtrace,可以简写为bt。(gdb) bt#0 pop () at stack.c:10#1 0x080484a6 in main () at main.c:... 阅读全文