03 2015 档案

摘要:项目数据库逻辑数据库主要逻辑模块分为asynDBCenter,DBNet,DBSvrasynDBCenter与DBNet之间通过共享内存通信(缓存进程为了防止GS崩溃导致玩家数据丢失,并且在DBNet里面可以做定时存储)这里的共享内存有点复杂1.发包类型的,就是跟GS与Net之间的相似带回收类型的2... 阅读全文
posted @ 2015-03-28 23:33 zzyoucan 阅读(307) 评论(0) 推荐(0) 编辑
摘要:#include typedef struct Node{ int data; struct Node* pNext;}NODE, *PNODE;/** *@brief 创建链表 */PNODE create_list(){ int nLength; ... 阅读全文
posted @ 2015-03-27 22:11 zzyoucan 阅读(160) 评论(0) 推荐(0) 编辑
摘要:#include #define MAXSIZE 10typedef struct { int r[MAXSIZE + 1];//用于存储排序的数组,r[0]用作哨兵或临时变量 int length; //用于记录顺序表的长度}SqlList;void swap(S... 阅读全文
posted @ 2015-03-27 22:10 zzyoucan 阅读(256) 评论(0) 推荐(1) 编辑
摘要:Observer.h#ifndef _OBSERVER_H_#define _OBSERVER_H_#include #include #include class ConcreteSubject;//抽象观察者class Observer{public: /** *@brief 更新... 阅读全文
posted @ 2015-03-22 11:14 zzyoucan 阅读(202) 评论(0) 推荐(0) 编辑
摘要:现在就来看看数据库发包模式这个用到了抽象工厂模式其实经理的那个差不多都是注册具体工厂到抽象工厂,只是这里不是抽象工厂而是PktFactoryMgr功能和抽象工厂差不多{#define __REGISTER_DB_PKT_CREATEFUNCTION(DBOptClassType) \ R... 阅读全文
posted @ 2015-03-20 22:18 zzyoucan 阅读(450) 评论(0) 推荐(0) 编辑
摘要:对于抽象工厂的封装#ifndef _AbstractFactory_#define _AbstractFactory_#include /** *@brief 具体工厂类 *@param Product 抽象产品 *@param ConcreateProduct 具体产品 */template cl... 阅读全文
posted @ 2015-03-20 17:06 zzyoucan 阅读(159) 评论(0) 推荐(0) 编辑
摘要://简单工厂/*当新添加一个操作时,需要添加新的实现类和在工厂方法的switch中添加,打破了开放封闭原则*/#if 0class operation{public: virtual int GetResult(int nParam1, int nParam2) = 0;};enum Ope... 阅读全文
posted @ 2015-03-20 17:04 zzyoucan 阅读(257) 评论(0) 推荐(0) 编辑
摘要:# if 0#include #include #include void handler1(const boost::system::error_code &ec) { std::cout #include #include void handler1(const boost:... 阅读全文
posted @ 2015-03-18 16:11 zzyoucan 阅读(753) 评论(0) 推荐(0) 编辑
摘要:#include #include void handle1(const boost::system::error_code& ec){ std::cout << "5.s" << std::endl;}void handle2(const boost::system::error_code&... 阅读全文
posted @ 2015-03-18 13:31 zzyoucan 阅读(194) 评论(0) 推荐(0) 编辑
摘要:共享内存现在使用环形队列,以前使用boost的那一套,难以看懂,现在直接改成环形队列简单多了,将环形队列的头和尾放入共享内存中,也是安全的和内存池的实现差不多,都是先分配好,然后放入队列中,只是这个是环形队列,而那个是无锁队列,具体哪个队列的效率高,个人感觉还是环形队列的效率高然后再外层再搞个环形队... 阅读全文
posted @ 2015-03-18 11:11 zzyoucan 阅读(259) 评论(0) 推荐(0) 编辑
摘要:解释一下网络的调度过程客户机连接:服务器监听线程收到连接,轮询libevent线程,扔给轮询线程的连接队列中,向socketpair发送c一个字节,lib线程收到通知根据fd创建与客户机通信的bufferevent,然后将这样一个连接事件放入线程的状态改变队列(w2m_state_change_qu... 阅读全文
posted @ 2015-03-17 00:24 zzyoucan 阅读(597) 评论(0) 推荐(0) 编辑
摘要:这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Ser... 阅读全文
posted @ 2015-03-17 00:16 zzyoucan 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-03-16 10:58 zzyoucan 阅读(734) 评论(0) 推荐(0) 编辑
摘要:LoginServer:登录服务器,验证密码,发送玩家角色信息,当玩家验证完密码啥的后,c客户端断开与登录服务器连接,直接跟SceneServer进行交互CenterServer:中心控制服务器,负责整个服务器群的调度,中间用中介者模式进行交互WorldServer:世界服务器,负责整个服务器玩家操... 阅读全文
posted @ 2015-03-15 23:37 zzyoucan 阅读(231) 评论(0) 推荐(0) 编辑
摘要:关于项目中lua任务(某些没弄懂,但lua上耗费时间有点长了不看了)这段时间看了lua语法和项目中lua应用1.在lua中注册c库,在lua5.2中好像都是注册c库,相当于在lua中定义一个table,key是函数名字,value是函数指针m_spLuaState->RegLib("game", f... 阅读全文
posted @ 2015-03-15 23:16 zzyoucan 阅读(646) 评论(0) 推荐(0) 编辑
摘要:--lua仿单继承Account = { balance = 0}--对于成员变量,第一此访问要使用元表中的,在第一次也赋值到自己的域中了--将不涉及到__index了function Account:new(o) o = o or {} --setmetatable看到后面,忘了这个啥意思了... 阅读全文
posted @ 2015-03-11 22:22 zzyoucan 阅读(195) 评论(0) 推荐(0) 编辑
摘要:--lua仿单继承Account = { balance = 0}function Account:new(o) o = o or {} setmetatable(o, self)--Account表本身作为o的metatable self.__index = self--自己作为自己的原型 ... 阅读全文
posted @ 2015-03-10 13:35 zzyoucan 阅读(184) 评论(0) 推荐(0) 编辑
摘要:Account = { balance = 0}function Account:deposit(v) self.balance = self.balance + vendfunction Account:new(o) o = o or {} setmetatable(o, self)--A... 阅读全文
posted @ 2015-03-10 10:56 zzyoucan 阅读(135) 评论(0) 推荐(0) 编辑
摘要:Account ={ balance = 0, withdraw = function(self, v) self.balance = self.balance - v end}--:操作符隐藏了self或者this参数,操作方便function Account:deposit(v) ... 阅读全文
posted @ 2015-03-10 00:39 zzyoucan 阅读(136) 评论(0) 推荐(0) 编辑
摘要:--sort中的匿名函数中的grades称为外部局部变量,或者upvalue--函数内部定义的函数可以访问函数的变量--这个就是简单的闭包--function sortbygrade (names, grades)-- table.sort(names, function(n1, n2)-- ... 阅读全文
posted @ 2015-03-09 20:50 zzyoucan 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Set = {}Set.mt = {}--定义普通的表作为元表,为了避免命名污染直接放在Set内部function Set.new(t) local set = {} setmetatable(set, Set.mt)--一组相关的表共享一个metatable(通过这个可以描述他们共同的... 阅读全文
posted @ 2015-03-09 15:44 zzyoucan 阅读(267) 评论(0) 推荐(0) 编辑
摘要:#include #include #define MAX_COLOR 255 extern "C"{#include "lua-5.2.2/src/lauxlib.h"#include "lua-5.2.2/src/lualib.h"#include "lua-5.2.2/src/ls... 阅读全文
posted @ 2015-03-09 11:42 zzyoucan 阅读(1985) 评论(0) 推荐(0) 编辑
摘要:#include #define MAX_COLOR 255 extern "C"{#include "lua-5.2.2/src/lauxlib.h"#include "lua-5.2.2/src/lualib.h"#include "lua-5.2.2/src/lstate.h"}i... 阅读全文
posted @ 2015-03-09 00:05 zzyoucan 阅读(6218) 评论(0) 推荐(0) 编辑
摘要:#include extern "C"{#include "lua-5.2.2/src/lauxlib.h"#include "lua-5.2.2/src/lualib.h"#include "lua-5.2.2/src/lstate.h"}//lua与c交互栈的索引,假如栈中有5个元素//5 -1... 阅读全文
posted @ 2015-03-08 19:56 zzyoucan 阅读(729) 评论(1) 推荐(0) 编辑
摘要:VS用了这么久都没有这样的问题,昨天突然发现在自己电脑时间不对了,就调了下,以后这问题都来了。每次运行项目都要重新编译下,不管改不改底层代码。这让我很痛苦,浪费大量时间,找了好久才得到答案:1.时间问题 所创建的文件的时间比如是:2011-09-22 09:03:22,那么你的系统时间之前被你... 阅读全文
posted @ 2015-03-06 17:40 zzyoucan 阅读(380) 评论(0) 推荐(0) 编辑
摘要:过来这几天身体一直不舒服,一直没有调整过来。 阅读全文
posted @ 2015-03-04 23:45 zzyoucan 阅读(125) 评论(0) 推荐(0) 编辑
摘要:今天luastudio到期了,网上找破解版的吗的没有,其他工具太差了,要不就是不支持5.2,搞了好长时间,想买一个太贵了,我想能不能不这么坑 阅读全文
posted @ 2015-03-04 23:44 zzyoucan 阅读(120) 评论(0) 推荐(0) 编辑
摘要:#include #include extern "C"{#include "lua-5.2.2/src/lua.h"#include "lua-5.2.2/src/lauxlib.h"#include "lua-5.2.2/src/lualib.h"}//定义库函数static int l_dir... 阅读全文
posted @ 2015-03-02 14:51 zzyoucan 阅读(569) 评论(0) 推荐(0) 编辑
摘要:#include #include extern "C"{/*头文件lua.h定义了Lua提供的基础函数,包括创建Lua环境、调用Lua函数、读写Lua环境中全局变量,以及注册供Lua调用的新函数等等*/#include "lua-5.2.2/src/lua.h"/*头文件lauxlib.h定义了辅... 阅读全文
posted @ 2015-03-02 10:58 zzyoucan 阅读(4398) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示