07 2016 档案
摘要:最近自己的服务器做到序列化这一步了,在网上看了下,序列化的工具有boost 和google的protocol buffer, protocol buffer的效率和使用程度更高效一些,就自己琢磨下把他加到自己的服务器里。 所以这里我先弄一个小的demo去测试如何使用和配置protocol buffe
阅读全文
摘要:最近自己在写一套服务器框架,期间遇到很多问题, 对于Linux或者windows出错情况下可以通过错误码获取错误信息。 为了测试服务器性能,我在客户端开了2000个线程,这样每个线程 都创建socket和服务器通信,连接15个线程,再后来的客户端线程 connect过程中会失败,我另起了一个客户端进
阅读全文
摘要:C++单例模式主要用途就是整个程序中只实例化一个对象,之后获取到的都是该对象本身进行处理问题。 单例模式一般都是在函数中采用局部静态变量完成的,因为局部的静态变量生命周期是随着程序的生命周期 一起结束,所以不用担心会失效。另外局部的静态变量作用域仅限于该函数内部,别的函数不会直接使用。 第三点就是局
阅读全文
摘要:TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket, 因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,
阅读全文
摘要:C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。 从作用域看: 全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声
阅读全文
摘要:最近使用C++模板,虽然工作几年了,但是模板用的很少,确切的说自己实现的机会很小。 昨天写了一个代码maxheap.h 中实现了类模板的声明,我将实现写在maxheap.cpp中, 当在main.cpp中引用maxheap中的接口时,提示链接错误。网上提供了几个解决方案, 第一种方式是将maxhea
阅读全文
摘要:大根堆的定义:1 大根堆是一个大根树 2 大根堆是一个完全二叉树 所以大根堆用数组表示是连续的,不会出现空白字段。 对于大根堆的插入 对于大根堆的插入,可以在排序前确定大根堆的形状,可以确定元素5从位置6插入,那么比较元素5和位置3的元素2, 元素5比元素2大,将2下移。接着比较元素5和元素20,一
阅读全文
摘要:libevent中提供了一个Hello-world.c 的例子,从这个例子可以学习libevent是如何使用bufferevent的。 这个例子在Sample中 这个例子之前讲解过,这次主要看下bufferevent的使用。 第一步找到main函数 main函数 event_base_dispatc
阅读全文
摘要:Bufferevents and evbuffers Every bufferevent has an input buffer and an output buffer. These are of type "struct evbuffer". When you have data to writ
阅读全文
摘要:Events have similar lifecycles. Once you call a Libevent function to set up an event and associate it with an event base, it becomes initialized. At t
阅读全文