3项目
wclin88
这个作者很懒,什么都没留下…
展开
-
底层数据库
1) 底层基本的数据库操作类class DBOpBase{ public: DBOpBase(Connection* pConnection) { ................... } ~DBOpBase() { ..........原创 2011-12-12 15:59:25 · 686 阅读 · 0 评论 -
对象池的使用
1)一个模板类的对象池,templateclass ObjPool{public: ObjPool(BOOL bThreadSafe=TRUE) { } ~ObjPool( VOID ) { } BOOL Init( INT nMaxCount = 10 ) {原创 2011-12-11 22:19:51 · 525 阅读 · 0 评论 -
数据库线程操作过程
数据库线程管理:1) 根据配置文件启动相应个数的线程2) 调用管理器 SendThreadPacket 把数据库操作包发送到没在处理包的数据库线程3) 如果所有的线程都忙着,包放在管理器的cache里(包缓存在管理器,不是线程)4) 在每次心跳,到cache拿包发送到空闲的DB线程5) DB线程包处理时,从管理器拿相应线程的数据库句柄,使用上一篇的数据操作类实现数据库各种操原创 2011-12-12 20:02:13 · 533 阅读 · 0 评论 -
协议包
1)包组成: 包大小(包头加上内容) + 包ID + 校验号 + 具体内容2)从应用程序缓存区读取的过程:根据包ID对包头的包大小字段进行校验,除了没接收完的continue之外,其他断开连接 读取包头 -》 校验包ID -》 包大小是否超过最大值(这种包所能达到的最大值) -》判断是否接收完 -》如果是定长的包,判断包的确切长度3)校验完,把包从缓冲区里读取出来ps:原创 2011-12-14 16:02:46 · 601 阅读 · 0 评论 -
gameserver 线程
1) 主线程 while( IsActive() ) 不停的循环着。 1 读取某些配置文件,达到"热更新"的效果 2 全局管理器的心跳,比如副本管理器等2) 场景线程组 每一个地图场景一个线程,同一个类型的副本也是一个线程3) 连接线程 负责接受客户端的连接,成功之后把连接给相应的场景线程 4) 数据库线程组 还有另外辅助两个线程5) server线程 负责ga原创 2011-12-16 11:30:23 · 703 阅读 · 0 评论 -
玩家的管理
玩家的管理1) 所有的玩家连接对象从player对象池g_pPlayerPool中分配2) 每个连接上的玩家分配给一个player对象class Player{public : Player( BOOL bIsServer=FALSE ) ; virtual ~Player( ) ; ................... virtual B原创 2011-12-16 15:21:53 · 651 阅读 · 0 评论 -
详解rsync算法--如何减少同步文件时的网络传输量
转至:http://blog.csdn.net/russell_tao/article/details/7240661在csdn首页上看到这篇文章,因为现在我们的服务器日志同步也是用rsync,就转过来了,扩展一下知识面先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改转载 2012-03-10 21:42:27 · 732 阅读 · 0 评论