2014年4月18日
摘要: 最近一直在学习makefile是如何编写的。当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷。linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件。makefile是一种特殊的文件格式... 阅读全文
posted @ 2014-04-18 17:27 bitbit 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 在linux下面下写程序少不了写makefile,如果每个文件都按部就班的详细的写编译脚本,效率势必低下;makefile提供了自动化变量、模式规则等,稍加利用可以提高写makefile的效率。下面列举一个简单通用的makefile书写规则:SRCS = $(wildcard *.c)OBJS = ... 阅读全文
posted @ 2014-04-18 17:06 bitbit 阅读(242) 评论(0) 推荐(0) 编辑
摘要: #gcc test.cpp -L. -Wl,-Bdynamic -ltestlib -Wl,-Bstatic -ltestlib -Wl,-Bdynamic #make clean; make init; make SERVER_NAME=krc_search#make clean; make in... 阅读全文
posted @ 2014-04-18 17:03 bitbit 阅读(380) 评论(0) 推荐(0) 编辑
摘要: [+]KEEPALIVE作用KEEPALIVE代码示例KEEPALIVE脚本设置1、KEEPALIVE作用KEEPALIVE机制,是TCP协议规定的TCP层(非应用层业务代码实现的)检测TCP本端到对方主机的TCP连接的连通性的行为。避免服务器在客户端出现各种不良状况时无法感知,而永远等在这条TCP... 阅读全文
posted @ 2014-04-18 16:20 bitbit 阅读(829) 评论(0) 推荐(0) 编辑
摘要: 功能描述获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由... 阅读全文
posted @ 2014-04-18 16:18 bitbit 阅读(4307) 评论(0) 推荐(0) 编辑
摘要: 上一篇我们封装了三种事件监听方式,如果分别提供给客户端使用,有点不方便,也不利于统一管理;我们再封装一层EventLoop。/***************************************************************************************... 阅读全文
posted @ 2014-04-18 12:00 bitbit 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 最近比较忙,好久没更新了;今天我们看一下事件的监听方式,在linux下面事件的监听方式有三种select、poll、epoll,性能上面epoll最高,如果仅是最多监听十多个描述符,用啥无所谓,如果是几千个呢就非epoll不能胜任了。对三种时间监听方式进行封装,由于行为相似因此都继承于一个抽象基类E... 阅读全文
posted @ 2014-04-18 11:57 bitbit 阅读(1402) 评论(0) 推荐(0) 编辑
摘要: 前面分析了对socket基本操作的封装,并按照数据的传送方式写了两个类,本篇将写一个代理类提供给库的使用者使用的类。/*************************************************************************************** ***... 阅读全文
posted @ 2014-04-18 11:55 bitbit 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 把linux平台提供的有关socket操作的API进行封装是有必要的;基于stream操作的流程与基于dgram操作的流程略有不同,分别放在两个类中,但两者又有很多相似的操作,因此写一个基类,让其继承自这个基类;基类起名为:CommBase,操作stream与dgram两个类分别起名为:Stream... 阅读全文
posted @ 2014-04-18 11:52 bitbit 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 在第一篇中,已经说明,传递的socket地址采取以下形式:[cpp] view plaincopyprint?stream://192.168.2.10:8080 dgram://192.168.2.10:8080 stream://unix.domain.ipc dgram://unix.doma... 阅读全文
posted @ 2014-04-18 11:48 bitbit 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 写代码要有调试log,采用syslog的输出;一般会输出到"/var/log/messages"/*****************************************************************************************************... 阅读全文
posted @ 2014-04-18 11:45 bitbit 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 上一篇已经做过注释,这一篇直接上代码/*************************************************************************************** *******************************************... 阅读全文
posted @ 2014-04-18 11:43 bitbit 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 原文:http://blog.csdn.net/gdutliuyun827/article/details/8257186由于工作与学习的需要,写了一个socket的事件处理框架,在公司写的已经使用了一段时间,下班后回家抽出时间又重写了一下,并进行了完善,起名为:sock_ev;最近正在调试阶段,源... 阅读全文
posted @ 2014-04-18 11:41 bitbit 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 第一部分牛刀小试:启动GDB开始调试1. 编译带调试信息的可执行程序:用gcc(g++)编译的时候带上-g选项即可2. 启动GDB开始调试(1)gdb program ///最常用的用gdb启动程序,开始调试的方式(2)gdb program core ///用gdb查看core dump文件,跟踪... 阅读全文
posted @ 2014-04-18 11:37 bitbit 阅读(24504) 评论(0) 推荐(3) 编辑
摘要: 查看栈信息 当程序被停住了,首先要确认的就是程序是在哪儿被断住的。这个一般是通过查看调用栈信息来看的。在gdb中,查看调用栈的命令是backtrace,可以简写为bt。(gdb) bt#0 pop () at stack.c:10#1 0x080484a6 in main () at main.c:... 阅读全文
posted @ 2014-04-18 11:34 bitbit 阅读(3473) 评论(0) 推荐(0) 编辑