- 博客(13)
- 收藏
- 关注
原创 传奇源码分析-服务器端(SelGate服务器分析)
SelGate服务器注:客户端从LoginSvr服务器得到SelGate服务器IP之后,连接SelGate服务器,进行角色创建,删除,选择操作,然后发送数据到DBSrv服务器。g_ssock Local 7100客户端登陆端口g_csock Remote 5100发送到DBSrv服务器上的套接字 1.首先从SelGate.cpp WinMain分析:
2007-03-19 23:02:00 11960 8
原创 传奇源码分析-客户端(游戏逻辑处理源分析四)
现在假设玩家开始操作游戏:传奇的客户端源代码工程WindHorn一、CWHApp派生CWHWindow和CWHDXGraphicWindow。二、CWHDefProcess派生出CloginProcess、CcharacterProcess、CgameProcess客户端WinMain调用CWHDXGraphicWindow g_xMainWnd;创建一个窗口。客户
2007-03-19 22:54:00 6436 1
原创 传奇源码分析-客户端(游戏逻辑处理源分析三)
6. 接收怪物,商人,其它玩家的消息:ProcessUserHuman:(其它玩家—服务器处理)CPlayerObject->SearchViewRange();CPlayerObject->Operate();遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_px
2007-03-08 18:33:00 6043 3
原创 传奇源码分析-客户端(游戏逻辑处理源分析二)
5.接受登录成功后,接收GameSrv服务器发送的消息:接收GameGate发送的消息:CClientSocket::OnSocketMessage的FD_READ事件中,PacketQ.PushQ((BYTE*)pszPacket);把接收到的消息,压入PacketQ队列中。处理PacketQ队列数据是由CGameProcess::Load()时调用OnTimer在CGamePr
2007-03-08 18:31:00 5788 1
原创 传奇源码分析-服务器端(LoginSvr服务器分析)
LoginSvr服务器g_gcSock Local 5500端口1.首先从LoginSvr.cpp WinMain分析: 1) CheckAvailableIOCP : 检查是不是NT,2000的系统(IOCP) 2) InitInstance: 初始化界面,加载WSAStartup GetDBManager()->Init( Inse
2007-03-08 18:28:00 7955
原创 传奇源码分析-服务器端(LoginGate服务器处理)
LoginGate服务器服务器端: 1.首先从LoginGate.cpp WinMain分析: 1) CheckAvailableIOCP : 检查是不是NT,2000的系统(IOCP) 2) InitInstance: 初始化界面,加载WSAStartup3) MainWndProc窗口回调函数.2.MainWndProc.CPP
2007-03-06 22:42:00 12931 7
原创 传奇源码分析-客户端(传奇2文件格式分析)
传奇文件类型格式探讨(一):Wix文件:索引文件,根据索引查找到相应数据地址(数据文件)。// WIX 文件头格式 typedef struct tagWIXFILEIMAGEINFO{ CHAR szTmp[40]; // 库文件标题 WEMADE Entertainment inc. WIL文件头 INT nIndexC
2007-03-03 17:12:00 6651 1
原创 传奇源码分析-客户端(全局变量与总体执行流程)
客户端:传奇的客户端源代码有两个工程,WindHorn和Mir2Ex。先剖析一下WindHorn工程。1.CWHApp、CWHWindow和CWHDXGraphicWindow。Window程序窗口的创建。 CWHApp派生CWHWindow,CWHWindow又派生CWHDXGraphicWindow。CWHWindow类 中完成窗口
2007-03-02 16:37:00 5342 1
原创 传奇源码分析-客户端(WindHorn简述和传奇文件格式分析)
DirectX类库分析(WindHorn): 1. RegHandler.cpp 注册表访问(读写)。2. CWHApp派生CWHWindow,CWHWindow完成窗口的注册和创建。CWHWindow派生出CWHDXGraphicWindow,CWHDXGraphicWindow调用CWHWindow完成创建窗口功能,然后再调用CreateDXG()来初始化
2007-03-01 17:01:00 7685 2
原创 传奇源码分析-序言
简述: 最近对高性能的服务器比较感兴趣,读过了DELPHI的Socker源码WebService及RemObject之后,高性能的服务器感兴趣。你可能需要的以下知识才能更好的读懂一个商业源码:1).SOCKET的I/O模型熟悉掌握。2).面向对象技术的熟悉掌握。3).Socket的API掌握。4).多线程技术等。5).一门熟悉的开发工具掌握,和多种语言的源
2007-02-28 11:45:00 7161 3
转载 水滴石穿C语言之可变参数问题
作者: 楚云风 C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。 原型:int printf( const char *format [, argument]... );使用例:printf("Enjoy
2007-02-28 10:09:00 1572
原创 RemObject解决自动生成代码的想法.
用过DELPHI写过多层框架的,可能能RemObject比较熟悉. RemObjects Service Builder 自动生成代码的同时,也给我们带来困扰. 每个类都要定义在intf文件里, 接口只有一个, 这些显然对我们开发系统来讲, 支持的不够, 我想使用多个接口,也不想没完没了的定义结构. 前一段时间写了一个自动生成元数据的小工
2007-02-27 16:11:00 4514 1
原创 Overlapped模型深入分析(原理篇)
Overlapped I/O模型深入分析简述: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I
2007-02-26 14:14:00 4056
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人