自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 今天碰到的std::sort 的宕机

http://www.sgi.com/tech/stl/StrictWeakOrdering.html在自己的compare函数Irreflexivityf(x, x) must be false.Antisymmetryf(x, y) implies !f(y, x)Transitivityf(x, y) and f(y, z) imp

2014-06-24 20:02:30 1253

原创 时间戳使用的问题

使用时间戳的时候,是

2014-05-13 20:21:42 2190

原创 mysql断线重连 字符集没设置的bug

使用mysql++,在DB处理数据访问过程中,

2014-05-13 20:16:43 1548

原创 开服,Mysql++使用的宕机问题

111

2014-02-20 16:45:35 1137

原创 夏令时 游戏时间逻辑处理

游戏中使用gettimeofday 获取从1970/01/01 00:00:00到现在经过的真实秒数          当进入游戏时使用localtime来判断 tm.tm_isdst是否有从夏令时进出,进入夏令时,调用gettimeofday 和mktime的时间是相同的,离开夏令时,调用gettimeofday 比mktime的时间多3600s         gettimeofday

2014-01-22 22:36:32 1360

转载 技巧:多共享动态库中同名对象重复析构问题的解决方法

http://www.ibm.com/developerworks/cn/linux/l-cn-sdlstatic/Linux 支持的共享程序库(lib*.so)技术不仅能够有效利用系统资源,而且还对程序设计带来了很大的便利性、通用性等,因此被各种级别的应用系统广泛采用。 动态链接的共享库是在加载应用程序时被加载的,而且它与应用程序是在运行时绑定的:通过动态链接器,将动态共享库映射进应

2013-12-05 16:30:52 2069

原创 可能由_wordcopy_fwd_dest_aligned 引起的一处内存出错

==28356== Thread 9:1481 ==28356== Invalid read of size 81482 ==28356== at 0x3328A7BA95: _wordcopy_fwd_dest_aligned (in /lib64/libc-2.5.so)1483 ==28356== by 0x3328A7B0FF: bcopy (in /lib64/libc

2013-11-13 17:51:24 3546

转载 luaL_ref

http://simohayha.iteye.com/blog/552391

2013-05-21 12:24:02 5216

转载 EPOLL的ET和LT模式

http://wenku.baidu.com/view/31253a29e2bd960590c677c8.htmlEPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET)、Level Triggered (LT)。LT是缺省的工作方式,并且同时支持block和no-blocksocket;在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就

2013-04-25 15:58:48 3943

转载 epoll的ET和LT模式

http://www.kuqin.com/linux/20120912/330528.html在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输

2013-04-25 15:54:09 818

原创 服务器启动关系

游戏中几个服务器的启动,是有严格的优先顺序的,一个服务器中Super Record Session都是唯一的其他几个服务器不唯一        SuperServer >RecordServer > SessionServer > SceneServer > NpcServer >GatewayServer        1.   SuperServer首先启动,它需要去连接外面的服务器,

2013-01-12 14:57:35 1551 2

转载 _cdecl

http://baike.baidu.com/view/1280676.htm几种函数调用方式  __cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误

2012-10-11 10:30:29 633

原创 classContainer方法parse

tolua读入pkg文件调用classContainer:parse去解析代码s,通过classContainer:doparse去循环处理代码中的每一行function classContainer:parse (s) --self.curr_member_access = nil while s ~= '' do s = self:doparse(s) methodis

2012-10-11 10:27:09 953

原创 tolua中的每个文件

all.lua : 加载lua目录下的所有文件compat-5.1.lua : dofile的定义compat.lua : 主要是table debug math  string  io函数的定,basic.lua : 基本的c类型定义, 全局变量的定义(类型、枚举、类类型、名字重命名(pkg中@重定义)),一些全局函数的定义feature.lua : 基本上是后面需用定义的所

2012-10-10 17:01:03 1237

原创 doit.lua

在pkg文件中的每一行,都是待处理的内容,调用doit,使用Package函数读入这个pkg中的文件,对每一行内容进行读取。1.  当读到的内容是.h或.c/.cpp文件时,使用extract_code读取这个文件的内容,读取tolua_begin和tolua_end中的内容,然后对代码进行预处理preprocess;2.  调用parse对每一行代码进行解析,解析对象包括lua代码、C代

2012-10-10 15:24:08 643

转载 base64

http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符.    2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.    3. 解码

2012-08-15 20:58:37 537

转载 tar

转一个,自己老忘http://www.2cto.com/os/201109/103833.html范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc [root@linux ~

2012-07-17 15:05:03 449

转载 C语言中volatile关键字的作用

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的

2012-07-06 10:24:43 461

转载 Linux on Power 上的调试工具和技术

http://www.ibm.com/developerworks/cn/linux/l-pow-debug/简介调试程序有很多方法,例如向屏幕上打印消息,使用调试器,或者只需仔细考虑程序如何运行,并对问题进行有根有据的猜测。在修复 bug 之前,首先要确定在源程序中的位置。例如,当一个程序产生崩溃或生成核心转储(core dump)时,您就需要了解是哪行代码发生了崩溃

2012-07-05 11:14:45 2195

转载 Valgrind 使用简单说明(ZZ)

调不尽的内存泄露,用不完的Valgrind(一个介绍程序调试的精彩讲解:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/)Valgrind 介绍 Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使

2012-07-05 11:05:25 487

转载 backtraces

Gnu c library 33.1

2012-07-03 12:01:40 399

转载 Demangling

http://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.htmlTransforming C++ ABI identifiers (like RTTI symbols) into the original C++ source identifiers is called“demangling.”If you hav

2012-07-03 11:37:02 1718

转载 typeid

在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。    dyn

2012-05-08 17:08:43 429

转载 TCP选项:TCP_NODELAY和TCP_CORK

Nagle算法 TCP_NODELAY和TCP_CORKNagle算法根据创建者John Nagle命名。该算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用 程序系统的效率。Nagle算法,由Ford Aerospace And Communications Corporation Conge

2012-05-02 18:51:49 820

转载 #include time.h和 #include sys/time.h的区别

交叉编译情况下,两个文件的地址/opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/time.h /opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/sys/time.h

2012-04-05 21:32:33 5692

原创 NpcServer设计

NpcServer,Npc服务器,负责Npc的AI处理。         把关于Npc的AI单独拿出来处理,主要是基于效率的考虑,并且如果npcserver宕机,马上重启,并不导致其它服务器宕机。把npc的处理从场景中拿出来,场景上的开销主要就是和NpcServer的数据交互了,NpcServer和场景服务器上,不管是哪个服务器上的npc数据变化,都要同步到另一个服务器上。在npc处理中,np

2012-03-31 21:43:59 2567

原创 使用__builtin_return_address(level)和objdump查找bug和宕机

有些时候我们很难知道问题出在哪里,特别是类的析构,以及一些函数(调用这个函数的地方很多并且很频繁,不确定调用这个函数的堆栈)的调用,当我们去查找相应功能的代码问题时,如果简单的通过断点不好查找,就可以使用这个办法。所以我们使用gcc的编译特性使用__builtin_return_address(level)打印出一个函数的堆栈地址。其中level代表是堆栈中第几层调用地址,__builtin_

2012-03-27 21:36:50 5970

原创 数据服务器/平台服务器

在我们的游戏服务器中,与数据库打交道的服务器有数据服务器、会话服务器。         其中会话服务器,需要去存取游戏区中所有玩家的信息,读取所有玩家基本信息到数据库中,这个需要看功能的实现了,比如玩家A给离线玩家B发了一条消息,那么等这个玩家上线后,需要把这条消息发送到B。         数据服务器:         它的作用就是存取游戏中所有的信息,减少其他服务器的IO操作这样我

2012-03-26 20:21:40 1430

转载 定制core dump 文件的文件名

Linux使用笔记: 定制core dump文件的文件名Posted on 2009年11月17日在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因。缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要使用ulimit命令更改coredump的设置:ulimit -c unl

2012-03-21 16:21:03 1044

原创 网关服务器

之前想着要把什么什么给写一下,每次都太懒了,都是想起了才来写一下。今天只讨论游戏服务器的网关服务器。       1.转发       转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台等服务器的数据转发给客户端,接收客户端的数据,把消息转发给相应的服务器。很多时候,我们需要将消息发给所有的用户,如果让会话服务器来执行这个功能,如果这个时候服务器很负载很大,有2万人在线,那么就

2012-03-13 21:19:16 16554 6

转载 do..while(0)使用

在C中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。  1. do...while(0)消除goto语句。 通常,如果

2012-03-13 17:47:47 848

转载 core文件设置

http://www.akadia.com/services/ora_enable_core.html How do I enable core dumps for everybodyOverviewIn most Linux Distributions core file creation is disabled b

2012-03-02 16:37:20 6360 1

原创 套接口的读写时间

游戏服务器编程时,何时去读写套接字,读完后又该怎么操作?现在的做法是,每2ms从套接口epoll_wait出套接口事件。对于写事件,直接发送数据;对于读事件,根据这个服务器的功能决定这个消息的处理,对于网关这一类的服务器,直接解析消息,进行转发,对于其他服务器,把这些消息放进一个队列里面,其他线程来对这些消息进行处理;其他,像错误事件这些,关闭套接口

2012-02-29 20:43:35 768

原创 zlib基本使用

不关心算法细节,直接用,拿来主义,我们可以直接使用zlib的压缩解压的接口的,但是为了使用我们自己的内存管理器,所以用自己的接口了。voidpf myalloc(voidpf opaque,unsigned num, unsigned size)//内存分配{ return (voidpf) mymemallocator(num*size);}void myfree(voi

2012-02-29 20:20:34 1036

转载 Lua源码分析 -- 对象表示

http://blog.csdn.net/INmouse/article/details/1540424Lua源码分析 -- 对象表示Lua是动态类型的语言, 即是说类型附着于值而不变量[1]. Lua的八种基本类型空, 布尔, 数值, 字符串, 表, 函数和用户数据. 所有类似的值都是虚拟机的第一类值. Lua 解释器将其表示成为标签联合(tagged union). 如下面代码示例

2012-02-27 11:47:20 850

转载 阅读Lua源码

Recommended reading order:lmathlib.c, lstrlib.c: get familiar with the external C API. Don't bother with the pattern matcher though. Just the easy functions.lapi.c: Check how the API is implem

2012-02-24 16:26:10 778

转载 关于LUA源代码分析学习教程

【zz】http://mobile.51cto.com/iphone-286254.htm关于LUA源代码分析学习教程是本文要介绍的内容,主要是来学习lua中关于源码的内容,具体内容来看本文详解。原文是英文版的,利用一点时间翻译成中文的。希望bina大虾指点一二。ldebug.c - 调试接口:包含访问调试钩子的函数(lua_sethook/lua_gethook/lua_

2012-02-23 18:23:28 1497

转载 ELO等级介绍

在看Elo rating system时,搜到了这篇文章,就索性贴到这里了,介绍lol的[zz] http://lol.766.com/learn/773787.shtmlLol中使用了一种被称为ELO的配对机制,玩家在进行标准赛(NormalGame)和排名赛(RankedGame)时,游戏会使用这套机制为玩家们寻找水平相近的对手。  Zileas在官方论坛中阐述了L

2012-02-03 22:18:34 2658

转载 竞技场积分系统ELO详解

作者kane-zhu  转自:http://hi.baidu.com/wuaiyishang/blog/item/0ea6ec8dde90d76d9f2fb463.html来源:http://bbs.ngacn.com/read.php?tid=1284872&fpage=1Elo rating system这个系统用来计算玩家的相对技术等级,通常用于博弈类游戏,比如国际象

2012-02-03 22:10:59 4800 1

转载 lua函数重载

local function create() local arg_table = {} local function dispatcher (...) local tbl = arg_table local n = select ("#",...) local last_match for i = 1,n do local t = type(select(i,...))

2012-01-18 18:27:32 6464

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除