- 博客(14)
- 资源 (7)
- 收藏
- 关注
原创 轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
原文地址:www.devmaster.net/articles/mmo-scalable-server/原文作者:Joel Reymont译文地址:blog.mylkcn.net/senzung.php翻译作者:神宗冥浩简介:本文以我的OpenPoker项目为例介绍另一种构建大规模多人在线系统的方案。OpenPoker是一个大型多人扑克网游,内建支持了容错能
2013-03-29 12:31:38 2098
原创 妙用for_each算法函数
for_each函数原形templateclass _InIt, class _Fn1> inline _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func) { // perform function for each element for (; _ChkFirst != _ChkLas
2013-03-29 00:25:07 1553
原创 开源免费的C/C++网络库(c/c++ sockets library) 七剑下天山
(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html (2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think-async.com/
2013-03-28 10:38:59 6253
原创 win32下boost::asio进一步封装
在网络通信中,我个人比较喜欢异步的方式。这样我程序就不会因为I/O的读写而导致线程阻塞。理想的工作方式是通知窗口的事件通知。windows中socket的底层其实是支持窗口事件通知的,但由于boost库比较强大,我就基于asio的库来实现这样的机制。由于是异步方式,当事件处理完成后,我希望将结果传递给回调函数,因此类中有下面3个函数: virtual void handler
2013-03-28 09:51:38 2853
原创 游戏主程的责任
为啥突然写这篇文章哪?因为和一个巨人的朋友谈主程的职位问题,谈完后我发现好像不太对劲,引起我思考了好久,因为这两年太安逸了,感觉到比较可怕。那就把这些年见过的主程,我认为的主程,我对于主程的思考,和主程应该承担的责任写下来。 有些人,工作了很多年了,但差不多每年换一次工作,因为很多游戏研发周期只有1年多,结束就走人。然后最后手里会积累大量的代码资源,这些资源有可能是别人的,也肯定有自
2013-03-28 00:57:05 5250
原创 引用计数的智能指针的实现与思考
引用计数在软件开发中是一项非常重用的技术,它可以说是无处不,我们在不知不觉中都在和它打交道,比如 Windows上的COM和Handle, Mac上的ref句柄,脚本语言中的垃圾回收技术。但是在C++标准库中,却没有内置支持引用计数的技术的支持,下面我们就尝试封装自己的基于引用计数的智能指针。一般来说,计数方法的实现有2种,内置和外置:内置指的是对象本身就有计数功能,也就是计数的值
2013-03-28 00:38:46 1649
原创 SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
spserver 是一个实现了半同步/半异步(Half-Sync/Half-Async)和领导者/追随者(Leader/Follower) 模式的服务器框架,能够简化 TCP server 的开发工作。 spserver 使用 c++ 实现,目前实现了以下功能: 1.封装了 TCP server 中接受连接的功能; 2.使用非阻塞型I/O和事件驱动模型,由主线程负责处理所有 TCP 连
2013-03-27 13:40:09 2338
原创 gSoap: How to add info to SOAP Header using gSOAP
There's some misleading info in gSOAP's official documents in SOAP Header Processing Part. This article leads you to the right way and can make your program work.The use case is: Client needs
2013-03-26 00:03:26 2842
原创 对union的进一步认识与一些深层应用
虽然平时在程序开发时较少使用union,虽然当初学C语言时,union一章被老师略过没有介绍,虽然,自认为自己对union的认识已经足够,但是,在写完上一篇文章之后,网上的讨论驱使我对这一基本的语言特性又投入了一些精力去关注,并写成了此文. 下面以MSDN中关于union的概述作为开头,这好像有些无聊,不过,有时候看specification的东西可以给我们很多提示,当我们从应用的角度去
2013-03-22 14:41:43 1821
原创 CEGUI之XML解析器——ExpatParser
CEGUI中资源文件加载,用到了XML文件解析,内置了几种解析接口,这里分析一种:ExpatParser相关类Attribute、Handler、Parser头文件,其中Serializer序列化是给CEGUILayoutEditor用的,使得layout资源文件能以XML文件格式保存。大致流程为:1、创建 2、设置 3 解析
2013-03-14 18:48:59 2246
原创 从CEGUI源码看代码规范
CEGUI(Crazy Eddie’s GUI)是一个使用C++实现的基于LGPL协议的的开源GUI库,主要应用于游戏界面。连著名的开源游戏引擎Orge3D也放弃了自己的界面引擎而使用第三方的开源界面引擎CEGUI。对于开源的代码工程,我首先会观察它的代码规范。比如,使用什么命名法,是否使用异常等等,这很有用。看不同的开源工程,可以看到各种不同的代码规范,其中有很多是值得借鉴的。代
2013-03-12 17:53:42 1959
原创 CEGUI的事件系统分析
什么是GUI? GUI就是图形用户界面(Graphics User Interface),是指采用图形方式显示的计算机操作用户接口. 什么是GUI的事件? 所谓事件就是指发送给GUI系统的消息,该消息通知GUI系统某种事情已发生,要求作出响应.简言之就是:用户将自己的一个或多个回调函数挂钩到某个“事件”上,一旦“事件”被触发,所有挂钩的函数都被调用。
2013-03-12 17:31:01 2618 1
原创 同步/异步与阻塞/非阻塞的区别
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的
2013-03-05 22:50:58 1376
原创 Beginner's introductory guide to writing, installing, starting, stopping NT services
Introduction to NT ServicesAt system boot, Windows NT/2K starts an RPC server called as the Service Control Manager (SCM). An NT service is basically a win32 program that is loaded by the SCM. The
2013-03-04 23:06:37 1058
数据结构实验课的全部源程序
2009-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人