C/C++
-
online游戏服务器架构—用户登录数据组织_游戏用户账号数据结构设计
sprite_t类型的数据结构是核心数据结构,每一个登录用户对应一个,它的初始化在用户登录的时候,此后一直到用户退出或者离线一直保存在系统内存当中,在此过程中该sprite_t数据…
-
online游戏服务器架构–数据库及事件相关
Online服务器的第三部分就是数据层,send_request_to_db开始了数据层的处理逻辑: int send_request_to_db(int cmd, sprite_…
-
online游戏服务器架构–业务处理架构
除了网络架构,业务逻辑的处理更加复杂,为了保证实时性,在处理业务逻辑的时候尽量少用搜索技术,而应该用空间换时间,静态数组是不错的选择,业务逻辑的处理架构其实就是消息映射服务器,通过…
-
一个反外挂的策略
如何反外挂呢?现行的方式很多都是设置一个随机字符串,然后进行MD5校验,要么就是在服务器端进行微小的逻辑验证控制,比如一秒内点击鼠标10次就被认为是外挂所为,其实还有一种方法,就是…
-
用户空间读写锁的实现_用户空间 读写锁
用户空间的读写锁的实现已经有很多了,评价一个实现的好坏的标准也不一样,本文的实现是一个抄袭,也可以说是一个改进,抄袭谁的呢?当然是我最熟悉的linux内核的了,linux内核的读写…
-
内存对齐的问题_内存不对齐对齐线程安全吗
内存对齐问题是每一个c程序员都应该考虑过的问题,c编译器的规则明确规定了对齐问题,就是一个struct中按照最长的类型对齐,比如考虑下面的结构体: struct abc { cha…
-
x86的cpu处理int类型并不是处理char高效多少_cpu char
很多文章上说int类型是最高效的类型,cpu处理这种类型要比其它类型快,比如要比处理char类型快,原因是什么,原因就是他们学过一本国人的教科书,教科书上就这么写的,所以人们就记住…
-
strstr的各种实现–从strlen的实现谈起___pi_strcmp+0x8c
如果不看glibc的代码,那么也许你永远也不知道什么叫境界,仅仅认为简单的可读性强的代码就是最好的代码的人也一定停留在应届毕业生的水平,程序很大意义上是给机器看的而不是给人看的,人…
-
strcpy以及memcpy的实现
上过大学的计算机系的莘莘学子们,遗憾啊,在国产的教科书的恶臭的熏陶下,四年的青春流逝,悲哀啊!很幸运在大学中有很多研究GNU的人,这些人是幸运的,在学会了hello world之后…
-
笔试题–反转一个字节
这道题很古老了,可别将它和大端转小端混淆了,所谓大端和小端指的是字节序,而这里反转一个字节说的是位序,算法更是不胜枚举,说实话都能达到目的,剩余的就是看看谁的效率更高了,基本上这是…