1 2 3 4 5 ··· 9 下一页

[置顶] Herm游戏服务器引擎程序员开发指导 第1章 概述

摘要: http://blog.csdn.net/herm_lib daemon.huang # gmail # com1.1 什么是Herm Herm是一套快速开发高性能的网络应用的C++库,主要针对网络游戏服务器提供全套解决方案,包括接入、网游逻辑、数据缓存和持久化组件。但同时 Herm也适合可以用于即时通信、流媒体、文件下载、P2P(Socket组件实现的细节已经考虑到对TCP穿透的支持)等基于TCP/IP的网络应用。 Herm包括的组件: (1)base 最基础的组件,提供线程、一读一写线程不加锁的ring buffer、二进制消息解析器、支持多态的对象管理器和可支持多线程写入的完整的日志模块 阅读全文

posted @ 2012-11-24 21:38 daemonh 阅读(1577) 评论(4) 推荐(0) 编辑

2012年11月16日

Win32下对多个的线程句柄的关闭的控制(下)

摘要: 我的表达能力就达到这种程度了。接下来我会用Console程序和一个管理多句柄对象的类来实现上面的算法。文章长了点, 一部分发表不了。源码在《Win32下对多个的线程句柄的关闭的控制(下)》给出。下面是CMultipleHandles和一个基于Console的源码。// MultipleHandles.h// 作者: 黄瑞广 时间: 2004-02-06// 说明: 本类不支持线程安全class CMultipleHandles{private: int m_nNumOfHandle; public: HANDLE m_arrayHandle[MAXIMUM_WAIT_OBJECTS]; ... 阅读全文

posted @ 2012-11-16 09:45 daemonh 阅读(321) 评论(0) 推荐(0) 编辑

Win32下对多个的线程句柄的关闭的控制(上)

摘要: 网上看到自己04年发表在CSDN上的文章,当时还上了首页。现在看来蛮幼稚的,很有趣;当时应该没有blog这种东东,现在发表到blog上,纪念一下逝去的青春。-----------------------------------------------------------------------------------------------------前段时间做的一个项目, 其中涉及对管理多线程句柄的要求。现在整理一下思路,将它写出来,希望对部分的朋友有所帮助。我的程序要实现的功能是:多个同时运行的子线程中,当有一个子线程运行结束时,主线程要及时地或者在某个有效范围内关闭子线程句柄;而且在 阅读全文

posted @ 2012-11-16 09:43 daemonh 阅读(916) 评论(0) 推荐(0) 编辑

2012年11月11日

游戏服务器数据缓存和持久化中间件设计总结

摘要: http://blog.csdn.net/herm_lib/article/details/8171196本文就介绍游戏服务器的数据缓存和持久化的设计策略。基本上各种类型的游戏服务器都适用,包括全区全服、分区分服的SNS类、ACG或者RPG。数据的缓存和持久化从技术角度来讲是比较容易实现?做过几个类似的功能模块后,渐渐地会有一种模块重用的想法,有一个公共的中间件可以容易支持我们游戏服务器各种缓存和持久化需求。目前有类似开源的项目,我们以前的公司有类似的项目。项目组如果利用可靠的中间件,还是可以提高开发效率的。本文缓存和持久化中间件的设计目标限定游戏服务器领域,但基本上满足所有类型的游戏需求。我 阅读全文

posted @ 2012-11-11 15:35 daemonh 阅读(1691) 评论(0) 推荐(0) 编辑

2012年11月1日

STL不方便的细节总结

摘要: 1. 默认的allocator 默认的allocator是std::allocator,只是简单的new delete的封装,会导致内存频繁地申请和释放,使用者要传一个更好的 allocator进去。2. 循环过程中不好直接删除任意节点 举个最简单的例子 某个基础模块: struct Handler { virtual void Handle() = 0; }; class HandlerMgr { public: void Run() { for (size_t i = 0; i < .....) { m_handlers[i]->Handle(); } } ... 阅读全文

posted @ 2012-11-01 11:31 daemonh 阅读(210) 评论(0) 推荐(0) 编辑

2012年10月24日

修改一行代码的顺序引发恶心bug

摘要: 起因原来的代码 m_recvBuffer->Clear(); m_multiplexor->Register(this, Herm::READ_MASK);Session初始化的时候,先把接收buffer清空,再注册读事件。几周前,加了一个小功能, 抽了一个小函数,最后代码顺序变化了一下 m_multiplexor->Register(this, Herm::READ_MASK); m_recvBuffer->Clear();悲剧出现了,在大量的客户端连接,发请求数据的时候,有很低的概率出现某个客户端没收到回应。这个东西是前几年整理的,这几年基本没怎么动了,细节流程没有 阅读全文

posted @ 2012-10-24 18:18 daemonh 阅读(233) 评论(0) 推荐(0) 编辑

2012年10月20日

记录一下linux errno的定义位置

摘要: 每次都得找一下,记录一下vi /usr/include/asm-generic/errno.hvi /usr/include/asm-generic/errno-base.h 阅读全文

posted @ 2012-10-20 10:24 daemonh 阅读(255) 评论(0) 推荐(0) 编辑

2012年10月19日

debian虚拟IP配置

摘要: auto eth0 iface eth0 inet static address 192.168.9.253 netmask 255.255.255.0 gateway 192.168.9.1 auto eth0:1 iface eth0:1 inet static address 192.168.9.254 netmask 255.255.255.0 gateway 192.168.9.1 阅读全文

posted @ 2012-10-19 10:50 daemonh 阅读(402) 评论(0) 推荐(0) 编辑

2012年9月16日

Linux Crontab 定时任务 命令详解

摘要: http://blog.csdn.net/tianlesoftware/article/details/5315039一. Crontab介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行。1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。 如:[root@dave ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * 阅读全文

posted @ 2012-09-16 09:36 daemonh 阅读(160) 评论(0) 推荐(0) 编辑

2012年8月17日

Linux iptables 设置

摘要: 编辑 /etc/sysconfig/iptables然后运行 /sbin/service iptables restart防火墙规则只有在 iptables 服务运行的时候才能被激活。要手工启动服务,使用以下命令: /sbin/service iptables restart要确保它在系统引导时启动,使用以下命令: /sbin/chkconfig --level 345 iptables onipchains 服务不能和 iptables 服务同时运行。要确定ipchains 服务被禁用,执行以下命令: /sbin/chkconfig --level 345 ipchains off以下是比较 阅读全文

posted @ 2012-08-17 13:55 daemonh 阅读(244) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页

导航