自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈嘉怡的专栏

专注服务器。本人有对本博客的所有原创文章的版权。

  • 博客(15)
  • 收藏
  • 关注

原创 游戏服务器之内存数据库redis客户端应用

redis的介绍文章可以在其他地方参考些。这里只是拿游戏服务器的应用为例,介绍下redis c++客户端的一些应用。存储一个装备到redis。void CRWRedisClientOperator::add_equip_to_redis(CGamePlayer* player,int pos,CBagItem* bagItem){if(NULL == player){

2014-01-31 12:51:44 4463 1

原创 Redis源码学习-Master&Slave的命令交互

0. 写在前面        Version Redis2.2.2        Redis中可以支持主从结构,本文主要从master和slave的心跳机制出发(PING),分析redis的命令行交互。        在Redis中,server为每个连接建立一个redisClient数据对象,来描述对应的连接。其中,redisClient为命令交互设置了缓冲区。query

2014-01-31 12:21:21 1082

原创 游戏服务器之事件注册

dispatchEvent线程内的模块间通信为的是让各个模块之间容易以事件触发的形式来进行通信。逻辑引擎里含有逻辑事件分派器CLogicEventDispatcher m_EventDispatcher;//逻辑事件分派器注册消息事件调用(在逻辑引擎构造时)m_EventDispatcher.addEventListener(leAddItem, &CPlayerQuest

2014-01-24 16:08:47 1120

原创 游戏服务器之ai

ai是游戏的一个重要组成部分,指的是玩家与npc之间的相互活动。设计上:npc ai流程:逻辑线程主循环-->场景管理器遍历->场景循环-->遍历所有npc-->npc循环-->ai状态机切换和ai状态处理ai主要功能包括正常状态:ai状态切换和ai状态处理死亡状态:死亡状态机

2014-01-23 23:08:16 4175

原创 vector at 函数 和[]操作符

[]操作符的源码reference      operator[](size_type __n)      { return *(begin() + __n); }at函数的源码reference      at(size_type __n)      {_M_range_check(__n);return (*this)[__n];       }

2014-01-19 18:35:48 12356

原创 游戏服务器之分线处理

游戏服务器之分线处理处理的是游戏服务器在多场景服务器和每个场景服务器下分多场景对象的情况下的角色跳线和进入分线场景的应用的处理。设计上:(1)配置分线信息到静态表,服务器启动时加载并创建场景对象。(2)每生产一个场景对象(包括分线的场景对象)就注册到社会关系服务器。(3)进入场景或者跳线时,则查询场景服务器中的分线信息,然后选择在当前服务器下切换场景对象还是切换场景服务器。

2014-01-19 15:43:05 4174

原创 Lua程序数据类型及其使用

声明下:以下是别人文章中的内容。Robert Z2010-1初阶数据类型函数表简单对象的实现简单继承数据类型八种基本类型:数值(number)内部以double表示字符串(string)总是以零结尾,但可以包含任意字符(包括零),因此并不等价于C字符串,而是其超集。布尔(boolean)只有“true”或者

2014-01-18 16:59:09 1416

原创 游戏服务器之跨场景

游戏服务器由于要容纳更多的玩家,常常是分布式的。由于场景服务器进程可能多个,所以跨场景处理需要处理进程内或跨进程)。

2014-01-17 20:41:04 2877

原创 游戏服务器之数据收发缓存

游戏服务器  的一些数据接收处理,处理的是接收和发送的数据包队列,以客户端发送到逻辑服务器和逻辑服务器发送到数据服务器为例,来讨论一下底层的一些对网络数据接收的处理。(代码是以一个手游服务器的代码为例)服务器之间的连接,这里以逻辑服务器连接数据服务器为例: //这个是逻辑服务器作为客户端连接到数据服务器的自定义socket连接类的例行函数void CDBMana

2014-01-16 22:41:35 2472

转载 gcc优化选项

gcc默认提供了5级优化选项的集合:-O0:无优化(默认)-O和-O1:使用能减少目标文件大小以及执行时间并且不会使编译时间明显增加的优化.在编译大型程序的时候会显著增加编译时内存的使用.-O2: 包含-O1的优化并增加了不需要在目标文件大小和执行速度上进行折衷的优化.编译器不执行循环展开以及函数内联.此选项将增加编译时间和目标文件的执行性能.-Os:专门优化目标文

2014-01-10 15:16:14 1512

原创 linux 多线程的线程控制和线程通信

1.Linux“线程”     进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。     大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时clone

2014-01-10 00:48:31 2097

原创 游戏服务器之跨平台线程的实现

一个跨windows和linux平台的线程基类的实现。需要实现的在头文件的接口如下实现的功能就是一些线程的基本功能(部分功能需要的话还需要拓展,在子类实现):例程、挂起、恢复、终止、线程句柄、线程id.不同平台也会有些差异,主要是使用上,对于线程id、互斥量、条件变量的使用。只有windows有线程句柄,windows的线程事件通知和等待是通过线程句柄,linux使用条件变量。线程

2014-01-06 11:31:56 1212

原创 游戏服务器之文件数据库

游戏服务器之文件数据库用于数据服务器的存取档案。设计思路:1、业务线程数据服务器进程的业务线程有3个:1)本地数据文件写线程2)mysql存取线程3)备份文件压缩线程其中,本地数据文件写线程的业务是负责文件数据库的写入。2、文件结构数据库文件类型分为:1)索引文件2)数据文件(1)索引文件索引文件的结构包括:文件头描述(FDBHeader...

2014-01-05 18:27:36 3639

原创 游戏服务器之被动连接线程池

这个是分析的是一个网游服务器的服务器基类。但网络底层道理基本都一样 ,就是看你怎么应用而已。volatile bool shutdown_server = false;//多线程使用的标识关闭网络服务/** * \description CTRL + C等信号的处理函数,结束程序 * \param signum 信号编号 */static void ctrlcHan

2014-01-03 22:13:15 1658

原创 游戏服务器之lua脚本系统

现在做游戏的较多用脚本 ,可以热加载代码。脚本系统的目的是方便c++和lua之间的相互调用,实现c++和lua的 交互。

2014-01-01 17:47:23 6603

空空如也

空空如也

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

TA关注的人

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