摘要: 大多数实时网络游戏,将 server 的时间和 client 的时间校对一致是可以带来许多其他系统设计上的便利的。这里说的对时,并非去调整 client 的 os 中的时钟,而是把 game client 内部的逻辑时间调整跟 server 一致即可。 一个粗略的对时方案可以是这样的,clien... 阅读全文
posted @ 2014-02-15 23:50 byfei 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 二个64位的数据,相减后如果为64位的负数,用int强转以后,结果是为正数。 char *buffer = calloc(sz*2+1, sizeof(char)); 先分配一块内存,长度是要 dump 的数据长度两倍加一。然后循环 sprintf(buffer+i*2, "%02x", ... 阅读全文
posted @ 2014-02-15 23:28 byfei 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 消息队列 我们所能想到的最简单的消息队列可能就是使用stl的list来实现了,即消息队列内部维护一个list和一个互斥锁,putMessage时将message加入到队列尾,getMessage时从队列头取一个message返回,同时在getMessage和putMessage之前都要求先获取... 阅读全文
posted @ 2014-02-15 17:41 byfei 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1.为了游戏主逻辑循环的流畅运行,所有比较耗时的IO操作都会分享到单独的线程中去做,如网络IO,数据库IO和日志IO等。当然,也有把这些分享到单独的进程中去做的。 2.消息队列锁调用太频繁,这太多的内存分配和释放操作,频繁的内存分配不但增加了系统开销,更使得内存碎片不断增多,非常不利于我们的服务... 阅读全文
posted @ 2014-02-15 17:27 byfei 阅读(117) 评论(0) 推荐(0) 编辑
摘要: select http://baike.baidu.com/subview/621719/11844440.htm?fr=aladdin IOCP http://hi.baidu.com/haven2002/item/ff9c84008d8a5914cd34ea65 http://blog.cs... 阅读全文
posted @ 2014-02-15 17:16 byfei 阅读(154) 评论(0) 推荐(0) 编辑