- 博客(43)
- 资源 (4)
- 收藏
- 关注
转载 async_tcp_echo_server.cpp
async_tcp_echo_server.cpp由 easyeagel 于 星期六, 2009/09/19 - 14:16 发表asioboost代码注解//echo服务器是一个非常简单的服务,并且在实际中没有太多用处//但ech
2011-08-22 22:52:27
1158
转载 async_udp_echo_server.cpp
async_udp_echo_server.cpp由 easyeagel 于 星期六, 2009/09/19 - 14:19 发表asioboost代码注解/* * echo server 一种非常简单的服务,它把接收到的数据原封不
2011-08-22 22:51:49
1681
原创 boost::asio库的结构与构成
摘要:本文是对boost::asio库的一个较高层次的介绍,它没有深入或讲解boost::asio的类、函数的使用方法,它介绍boost::asio库构成,这个为我们提供哪些可有的工具。本文对于那些存在零星的boost::asio库使用经验读者来说,可以提高总体对boost::a
2011-08-09 16:32:13
1851
原创 使用Boost.Asio编写通信程序
使用Boost.Asio编写通信程序由 lgb 于 星期日, 2010/07/25 - 18:02 发表asioboost同步异步网络编程输入输出通信摘要:本文通过形像而活泼的语言简单地介绍了Boost::asio库的使用,
2011-08-08 22:28:28
2549
1
原创 类的成员变量偏移指针和成员函数指针
1、类的成员变量的偏移指针这是个特殊的指针class A{public: int x; int y;};&A::x和&A::y就表示类A的数据成员偏移指针。 int _tmain(int argc, _TCHAR* argv[]){printf("%p\n
2011-07-20 15:57:17
906
原创 Boost::Call_Traits 介绍
先谈谈什么是Traits,BS的解释如下: Think of a trait as a small object whose main purpose is to carry information used by another object or algo
2011-07-06 11:23:51
1976
原创 【解决问题】MemPool中的mAllocatedCount在所有对象销毁后变成了-1
【症状】 销毁程序中所有rp对象后,MemPoolImpl中的mAllocatedCount变成了-1(应该为0)。 【诊断】 应该是多调用了一个MemPoolImpl->freeMemNode(...)函数。allocMemNode()和freeMemNode()是成对调用的。 以为是某个对象在new_rp时为A对象,而使用时作为了B对象。其中B类内部含有某个r
2011-06-25 00:04:00
432
转载 【设计模式】交互图
交互图展示了对象间各请求的执行顺序。上图就是一个交互图,它描述了一个S h a p e对 象是如何加入到某个D r a w i n g对象中去的。 对象的命名规则与对象图一样,即在类名前加一个“ a”(例如a S h a p e)。 交互图中从上到下表示时间流向。 一条垂直实线表示一个特定对象的生命周期。 如果某对象在本图所示的时间区间开始时还未被创建,则用垂直虚线表示,这条虚线一直延伸到它被创建的时间点。 一个垂直的矩形表示对象在活动,也就是说它正在处理某个请
2011-06-01 15:54:00
626
转载 【设计模式】词汇表
抽象类(abstract class) 一种主要用来定义接口的类。抽象类中的部分或全部操作被延 迟到其子类中实现。抽象类不能实例化。 抽象耦合(abstract coupling) 若类A维护一个指向抽象类B的引用,则称类A抽象耦合 于B。我们之所以称之为抽象耦合乃是因为A指向的是一个对象的类型,而不是一个具体对 象。 抽象操作(abstract operation) 一种声明了型构( s i g n a t u r e)而没有实现的操作。在 C + +中,抽象操作对
2011-06-01 15:24:00
1124
转载 【设计模式】UML关系图示例
UML图例如下: 一、类框表示 第1层:类名。 第2层:属性(即类的字段)。 第3层:操作(类的方法)。+号表示public;-号表示private;#号表示protected。 二、类之间的各种关系 类之间的关系共6种: 继承关系 接口关系 依赖关系 关联关系 聚合关系 组合关系 1、继承关系 用空心三角形+实线表示。 2、实现接口 用空心三角形+虚线表示。 3、依赖关系
2011-06-01 15:11:00
1656
原创 【boost学习笔记】五种Iterator
五种Iterator为: Input Iterator Output Iterator Forward Iterator Bidirectional Iterator Radom Access Iterator 一、Input Iterator 用于只读,并且只能读一次。重复读没有定义。x=*it,不能再次x=*it。例如:istream_iterator。重复读有危险,应该在x=*it之后,立即++it,并且测试it!=end()。例如是否读到了流的末
2011-04-26 17:14:00
940
原创 【boost学习笔记】认识Concept
Concept代表:一组类(也可以是类模板)必须满足的一组条件。 当某个类(Class)满足一组条件(Concept)时,可以说这个类(Class)就是这个Conecpt的一个模型(Model)。 泛型编程中个各个“元素”的关系图: 一个类型可以同时满足几个Concept,例如:正规类型 正规类型是指必须同时满足如下三个Concept:Assignable、Default Constructiable、Equality Comparable。也即: 如果 x=y,则 x==y内建类型i
2011-04-26 14:52:00
536
转载 Boost 线程相关介绍
<br />相关文章:<br />boost::thread简要分析(1):thread<br />http://www.rosoo.net/a/cpp/2009/1204/8082.html<br />boost::thread简要分析(2):线程同步<br />http://www.rosoo.net/a/cpp/2009/1204/8083.html<br />boost::thread简要分析(3):线程局部存储及其它<br />http://www.rosoo.net/a/cpp/2009/120
2010-07-10 11:21:00
1242
原创 Ogre资源组及资源
Ogre资源状态 每一个资源都有四个状态。下图假设了一个资源: 资源状态的说明 资源状态 未知状态Unknown 声明的Declared 已创建Created 已载入L
2010-05-10 23:42:00
761
原创 OgreXMLConver 说明 及 批量处理
.[OgreXMLConveter] OgreXML转换器能够将 .mesh 模型网格文件 和 .skeleton 骨骼文件 由XML格式转换为二进制格式,同时可以将其二进制格式转换回XML格式。它同时也允许你在将XML格式转换为二进制格式时设置LOD层级信息。 如果你的Ogre脚本资源中原本使用的就是XML格式文件的话,那么本工具则是Ogre运行时必须的。所以你能够在OgreSource包的
2010-04-24 22:31:00
890
原创 语法高亮
以下是语法高亮插件 inline CEGUI::MouseButton convertOgreButtonToCegui(int buttonID){ using namespace OIS; switch (buttonID) { case OIS::MB_Left: return CEGUI::LeftButton; case OIS::MB_Right:
2010-04-10 15:29:00
552
原创 五种iterator的类别
任何种类的iterator都至少提供以下功能:1、可取值:*it。x=*it有效,但*it=x无效。2、可向前移动:++it,it++ (在区间(being, end]内,对于原生指针,begin~end之间不能出现NULL)3、相等比较:it1==it2, it1!=it2。4、可复制:it1=it2一、Input Iterator:最基本的,同上。相当于:只能读取但
2010-03-25 21:34:00
883
原创 traits(萃取)和 偏特化
traits主要是用来萃取出某一个类中定义的value_type。 template struct A { typedef T value_type; }; template struct traits { typedef typename I::value_type value_type; //此处的typename不可少
2010-03-25 20:40:00
669
原创 typename 一个用法
template struct MyIter typedef T value_type; // 巢狀型別宣告(nested type) T* ptr; MyIter(T* p=0) : ptr(p) { } T& operator*() const { return *ptr; } // ... }; template typename I:
2010-03-25 19:31:00
390
原创 常用C头文件 <c...>
#include // for placement new. #include // for ptrdiff_t, size_t #include // for exit() #include // for UINT_MAX #include // for cerrd00
2010-03-25 18:30:00
449
原创 STL中六大组件的关系
六大组件: 容器(containers):各種資料結構,如 vector, list, deque, set, map,用来存放“元素”。就是template class。 演算法(algorithms):各種常用演算法如 sort, search, copy, erase,就是template class。 迭代器(iterators):是所謂的「泛型指標」,是㆒種將 operator*,
2010-03-23 22:35:00
614
原创 operator++ 的前置、后置 两个 operator*
所有“游标”都至少要实现:operator++和operator* class A { private: int n; public: A& operator++() { ++n; return *this;} //++A A operator++(int) { A t=*this; n++; return t;} //A++;
2010-03-23 21:54:00
963
2
原创 在类声明中,静态(static)常量(const)泛整数型(char, int, DWORD)可以直接初始化
class A{ static const int n = 10; static const char c = a; static const float f = 3.23f;};
2010-03-23 21:02:00
994
原创 类模版的特化
//特化template struct A{ void Foo() { jhdbg_out("T");}};template //template{ void Foo() { jhdbg_out("char");}};
2010-03-23 20:51:00
364
原创 在类模版中写友元类和友元函数
必须先“声明”类,再声明函数,然后再定义 templateclass T> class A; templateclass T> class B; templateclass T> bool Foo(const A& a, const T& n);templateclass T> class A { friend class B; //不可
2010-03-23 20:09:00
436
原创 Windows消息队列
节详细描述消息和消息队列以及如何在你程序中使用他们。 关于消息和消息队列与传统的应用程序不同,Microsoft Windows应用程序并不显式地用一个函数的调用(如c运行库)来获取输入,而是,等待windows系统把输入传给它们。 windows系统把应用程序的所有输入传给应用程序的窗口,每个窗口都有一个称之为窗口过程的函数.当窗口有输入时windows系统要调用它,窗口过程处理输
2009-11-03 14:20:00
643
原创 GetQueuedCompletionStatus的返回值
GetQueuedCompletionStatus的返回值2009-06-24 18:52BOOL WINAPI GetQueuedCompletionStatus(__in HANDLE CompletionPort,__out LPDWORD lpNumberOfBytes,__out PULONG_PTR lpCompletionKey,__out L
2009-09-30 15:17:00
3238
原创 IOCP配合AcceptEX
IOCP配合AcceptEx的例子(1)(2006-7-2 14:33:00)【收藏】 【评论】 【打印】 【关闭】 标签:C++ VC 网络 服务器 在论坛找到的,搬进来备查,呵呵感谢作者的辛苦劳动:)作者:chang290 发表时间:2005-12-17 16:38:00 这是在学《Windows网络
2009-09-24 23:25:00
3487
转载 Winsock开发网络通信程序的经典入门
Winsock开发网络通信程序的经典入门文章来源:http://www.bdqnht.com/ 文章作者:北大青鸟 发布时间:2007-12-18 对于许多初学者来说,网络通信程序的开发,普遍的
2009-09-24 20:15:00
676
转载 staitc_cast、dynamic_cast比较
C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这
2009-09-19 21:47:00
672
转载 *& 连用,用于返回类型
在某种意义上,"*"和"&"是意思相对的两个东西,把它们放在一起有什么意义呢?。为了理解指针的这种做法,我们先复习一下C/C++编程中无所不在的指针概念。我们都知道MYCLASS*的意思:指向某个对象的指针,此对象的类型为MYCLASS。 void func1(MYCLASS *pMyClass); //
2009-09-18 23:55:00
1091
原创 编程笔记
【】使用boost中的shared_ptr 可以把 new 出的对象指针放入 std::vector等容器。对象的基类使用protected的析构函数,可以防止get()出的裸指针被误delete 【】但一个子类私有继承父类时,必须显示调用父类的构造函数,否则父类构造函数将不执行
2009-09-18 23:25:00
312
转载 编译boost库-用vc2005编译boost1.34.1
编译boost库-用vc2005编译boost1.34.1 编译boost库-用vc2005编译boost1.34.1 //打开控制台窗口,请使用vs2005在开始菜单中的“Visual Studio Tools->Visual Studio 2005 命令提示”打开控制台,这样vc的的编译环境就设置好了。//假设boost安装包的解压的目录为{BOOST_SRC}中。
2009-09-15 16:34:00
568
转载 UDP与TCP比较
以前公司用过TNL,又有RakNet也是UDP的。但是,不知道各个库在吞吐量、CPU占用、内存占用量/性能/碎片等方面的详细数据。 另,UDP相对TCP响应更快?请给出实际数据(分别采用TCP或UDP处理同一问题的测试对比数据,越多越好,谢谢!)。 下面是各家的理论:1:感觉UDP和TCP用在不同的地方,UDP用在像打枪之类的游戏,TCP可能更多用于像网络RPG之类的。
2009-09-15 11:30:00
3639
转载 P2P UDP NAT穿透原理
P2P UDP NAT穿透原理上一篇 / 下一篇 2009-03-06 15:43:43 查看( 36 ) / 评论( 0 ) / 评分( 0 / 0 ) 原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的
2009-09-04 13:54:00
1120
2
原创 完成端口使用总结 (转)
完成端口使用总结 (转) http://blog.csdn.net/dananhai/archive/2008/02/26/2122778.aspx前言本文不是全面介绍完成端口的,只是简单介绍了一下完成端口和几个常用概念。本文主要关注完成端口关闭时资源释放问题。基础介绍 完成端口——可能是Win32下最复杂的一种I/O模型,Win32下最复杂的内核对象。它通过指定数量的线程对
2009-08-20 17:56:00
470
转载 完成端口1
WinSocket模型的探讨——完成端口模型(一)开发者在线 Builder.com.cn 更新时间:2008-01-26作者:一雨田 来源:CSDN本文关键词: 端口模型 Winsocket 众所皆知,完成端口是在WINDOWS平台下效率最高,扩展性最好的IO模型,特别针对于WINSOCK的海量连接时,更能显示出其威力。其实建立一个完成端口的服务器也很简单,只要注意几个函数,了解
2009-08-20 16:40:00
381
原创 引擎网址收藏
分类网站名称网址描述OGREOgre开放资源地带www.jenkinssoftware.com RakNetRakNet官方网站www.jenkinssoftware.com 个人博客怪盗Kidhi.baidu
2009-08-16 10:29:00
437
转载 典型开源3D引擎分类比较
典型开源3D引擎分类比较常见的3D引擎有:Unreal,Quake,Lithtech,OGRE,Nebula,Irrlicht,Truevision3D...等,其中开源免费的有:orge,irrlicht,fly3d, NeoEngine, revolution3d, Nebula2,Genesis3d等。OGRE 在免费、开源的引擎中评价最高,一个原因是作为一个图形渲染引擎,它支持的图形特
2009-08-16 10:13:00
522
JHServer游戏服务器系统开发说明.pdf
2011-07-28
OpenGL开发指南.chm
2009-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人