第一次把代码解读写出来,可能不够理想还请大家包含。
对于游戏源码的欣赏,我一般只看一个地方通信层。所以我的解读也就只针对通信曾。当全部代码解读完后,我将对倾城通信层的设计与实现提出意见,以及希望各位高手也可以参加到讨论中来。文中有不正确,或我没有理解的地方请大家一起指出讨论,谢谢。
倾城的网络层server源码在deff.net和app.net下。
我是以消息对象为入口点开始分析的,在消息对象的设计中有如下几个接口。
MessageCodecFactory,MessageDecoder,MessageEncoder
以及如下实现类。
AppMessageCodecFactory,AppMessageDecoder,AppMessageEncoder
还有一个消息的model,Message类
因为我已经简单的看过了,这里边主要用到了一个倾城自己完成bytebuffer类,作为缓存。对消息进行读写。这篇文章我就主要说下bytebuffer类的作用。
bytebuffer类在daff.util下,在看到它这个包的时候我就在考虑一个问题。为什么它要重写那么多的类呢?bytebuffer在java的nio下已经完成了,我想它应该比我们自己重写要好的多把?下面我们一起来看看bytebuffer都完成了什么就明白了。
bytebuffer中有3个内部的全局变量
private int readPos;
private int writePos;
private byte data[];
readPos代表读取指针位置,writePos代表写入指针位置,data数组是存储数据作用。
bytebuffer的构造函数总共有三个
public ByteBuffer() {
this(1024);
}
public ByteBuffer(int i) {
data = new byte[i];
}
public ByteBuffer(byte abyte0[]) {
this(abyte0, 0, abyte0.length);
}
public ByteBuffer(byte abyte0[], int i, int j) {
data = abyte0;
readPos = i;
writePos = i + j;
}
前两个构造函数完成的是对数组大小的初始化工作,分配1024个字节大小的空间给byte数组。后两个初始化的方法用在一个已经有数据的data数组情况下。
其他对此类中方法的解释,在附件中的java文件中,我已经对此类的方法做了一个大概的注释,大家可以自己下下来研究。
分享到:
相关推荐
《倾国倾城服务器端源码》是一款专为游戏《倾国倾城》设计的服务器端软件,其源代码的开放对于开发者来说是一份宝贵的资源,可以深入理解游戏服务器的运行机制,进行二次开发或者优化现有系统。在这个压缩包中,包含...
倾城源码,可能是一个游戏、应用程序或者服务的名称,这里提到的是经过反编译得到的客户端和服务器端的源代码。这意味着开发者或研究者已经成功地将原始的二进制代码转换回了人类可读的高级语言形式,这通常是由于想...
【倾国倾城源码】是一个与网站开发相关的项目,其名称可能源于对中国古代美女的赞誉,用在网站上可能是为了表达设计的优美或者功能的强大。在这个特定的压缩包文件中,我们看到一个名为"WebTmNew20090817综合 - 副本...
在“倾城源码导读之二”中,我们聚焦于一系列与消息编码解码相关的Java源代码文件。这些文件在IT行业中通常是用于网络通信或数据序列化的关键组件。以下是每个文件的功能及其在整体系统中的作用: 1. `AppMessage....
倾城数据抓取源码功能介绍: 这是一款ASP.NET的网络抓取数据的程序,有着较好的界面功能。 通过搜索网站或贴吧,根据你需求的关键字抓取网站上的信息,搜索可做扩展! 页面搜索功能设置:搜索网站选择框,采集...
"倾城"模板可能包含一套独特的颜色搭配、布局设计和图标,旨在提供一个优雅且吸引人的用户体验。模版系统使得非编程背景的管理员也能轻松调整论坛的视觉样式。 2. **PHP与MySQL**:Discuz! 使用PHP作为服务器端脚本...
【倾城Asp.net数据抓取源码 v1.0】是一个基于ASP.NET技术的数据抓取解决方案,专为网络信息的高效检索和收集而设计。该程序具备友好的用户界面,使得用户能够轻松操作和定制自己的数据抓取任务。下面我们将深入探讨...
"倾城销售管理系统java"是一个基于Java编程语言和相关技术构建的销售管理解决方案。系统采用JSP(JavaServer Pages)作为前端展示层,利用Servlet技术处理后端业务逻辑,为用户提供了一个高效、稳定的销售数据管理和...
"倾城TXT编辑器工具"是一款专为处理TXT文本文件设计的应用程序,它提供了一种高效、便捷的方式来管理和编辑纯文本文件。这款编辑器可能是针对特定的“倾城服务端”进行优化,使得用户能够更好地与该服务端配合工作,...
这是一款ASP.NET的网络抓取数据的程序,有着较好的界面功能。 通过搜索网站或贴吧,根据你需求的关键字抓取网站上的信息,搜索可做扩展! 页面搜索功能设置:搜索网站选择框,采集信息的显示条数及关键字输入框; ...
微微一频也倾城
倾城综合盒子是一款由易语言和游戏辅助还有工具组成的盒子,倾城综合盒子绿色免费使用,资源都是网络搜集,是一款不错的综合工具箱。 更新内容 1.更新了界面优化 2.点击按钮直接下载到C盘,取消打开网址 3.取消了...
摘要:脚本资源,jQuery,JS幻灯片,图片切换 倾城网首页的漂亮JavaScript幻灯,基于jQuery,幻灯样式经典,动画效果平滑,欢迎大家下载使用。简要说明: index.html 为 html文档 statics/css 内放置css文件 ...
"倾城皮肤模块"可能是一组定制的界面元素,为程序提供了独特的视觉风格,使得软件更加吸引用户。 5. **注册表读写增强模块.ec**:注册表是Windows操作系统中存储系统和应用程序设置的关键数据库。这个增强模块可能...
【标题】"倾城网首页漂亮幻灯(基于jQuery) v1.0" 是一个网站组件,主要用于实现网页上的动态幻灯展示效果。这种效果常见于网站的首页,用于吸引用户的注意力,展示重要的信息或者吸引人的图片。这个组件是基于jQuery...
私用,文件备份 倾国倾城护肤品-第二期更新
该文档主要讨论的是一个名为"山倾城"的房地产项目的战略思路,主要涵盖了品牌、产品、市场、推广、目标、销售以及关系等多个方面。在这个战略中,"山倾城"项目被赋予了重要的战略意义,旨在成为中国旅游地产领域的...
洛克王国时空辅助WPE源码(本人费好大劲弄到的)