Android RakNet 系列之一 项目介绍

简介

项目对通讯要求越来越高了,为了满足新的需求开始研究RakNet在Android平台的应用,本篇是第一篇,熟悉RakNet的各个功能和插件。

RakNet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。

RakNet致力于网络和网络相关服务的游戏引擎。不仅包含了网络通信,也包括游戏级别复制,补丁升级,NAT穿透,和语音聊天。RakNet可以用于任何的应用,且可以与其他任何使用了RakNet的系统通信,不论它们位于同一个计算机,跨LAN,或跨Internet。

特点

高性能 (每秒传输25,000条信息)

容易使用(在线用户手册,视频教程( 在线技术支持))

跨平台

安全的传输(代码中自动使用SHA1, AES128, SYN,用RSA避免传输受到攻击)

音频传输(用Speex编码解码,8位的音频只需要每秒500字节传输)

远程终端(远程功能调用,远程管理你的程序,包括程序的设置,密码的管理和日志的管理)

目录服务器(目录服务器允许服务器列举他们自己需要的客户端,并与他们连接。)

Autopatcher (补丁系统,它将限制客户端传输到服务端的文件,这样是为了避免一些不合法的用户将一些不合法的文件传输到服务端。)

对象重载系统

网络数据压缩( BitStream类允许压缩矢量,矩阵,四元数和在-1到1之间的实数。)

强健的通信层(可以保障信息按照不同的信道传输)

网络连接类别

1、端到端模式;2、服务器/服务器模式。

项目

Raknet版本已经没有更新了,本项目使用最新版RakNet 4.081。

VS如图:

Eclipse如图:

Android RakNet 项目已经上传到git,地址:https://github.com/banketree/RakNet_Android

项目描述
名称 描述
DLL Windows平台下编译Raknet为动态库
LibStatic Windows平台下编译Raknet为静态库
JanssonStatic JSON库
MiniupnpcStatic 支持UPnP网络网关设备库
BurstTest 测试发送突发消息发送到远程系统
CloudTest 云端测试
ComprehensiveTest 综合内部测试,记录崩溃或泄漏。
CrossConnectionTest 交叉连接测试,如果两个实例同时互相连接的问题。
DroppedConnectionTest 掉线测试
FCM2Host 测试服务器最大连接后的转移
FCM2HostSimultaneous 测试多个服务器同时最大连接后的转移
FCM2VerifiedJoinSimultaneous 测试多个服务器同时认证
FlowControlTest 测试流量自动控制
LoopbackPerformanceTest 性能测试,多个实例的吞吐量性能和开销。
MessageSizeTest 消息大小测试
ReliableOrderedTest 测试发送大量消息,顺序的可靠性。
ReplicatedLogin 重复登录的问题
ServerClientTest2 测试连接采用客户/服务器的拓扑结构
TestDLL 动态调用测试
ThreadTest 测试多线程下的异常
IrrlichtDemo 游戏演示测试
Ogre3DInterpDemo 三维演示测试,使用Ogre 3D通过客户端/服务器网络显示一个爆米花的实例,使用ReplicaManager3。
AutopatcherClientGFx3 自动补丁测试
AutopatcherClient 补丁客户端
AutopatcherClient_SelfScaling 补丁完,安全退出测试
AutopatcherClientRestarter 补丁完,重启测试
AutopatcherMySQLRepository 补丁服务器,采用MySQL数据库实现
AutopatcherServer_MySQL 补丁服务器测试,测试它的完整性
AutopatcherPostgreSQLRepository 补丁信息和异步数据库查询
AutopatcherServer_PostgreSQL 补丁服务器测试,测试它的完整性
AutopatcherServer_SelfScaling 负载测试
CommandConsoleClient 命令控制台客户端
CommandConsoleServer 命令控制台服务器
PacketConsoleLogger 控制台日志
Lobby2ClientGFx3  
RoomsBrowserGFx3_RakNet  
Lobby2Client  
Lobby2Server_PGSQL PostgreSQL备份游戏数据的数据库
RoomsPlugin  
SteamLobby  
Lobby3  
NATCompleteClient 穿透完成客户端
NATCompleteServer 穿透完成服务端
UDPForwarderTest UDP代理
Matrices  
Demo_BspCollision  
SQLiteClientLogger 数据库日志
SQLiteServerLogger 数据库日志
SQLite3Plugin 数据库插件, 使用SQLite穿件一个网络日志文件,基于SQLite3Plugin
RakVoice 音频传输插件
RakVoiceDSound 采用DSound来录制和播放声音
RakVoiceFMOD 采用FMOD来录制和播放声音
BigPacketTest  大数据包测试
Chat Example Client 聊天客户端/服务器
Chat Example Server 聊天客户端/服务器
CloudClient 云客户端
CloudServer 云服务端
ComprehensivePCGame  
CrashReporter 测试/演示事故报告系统
DirectoryDeltaTransfer 目录列表传递,在目录之间发送变化或丢失的文件。 必要地,简单的补丁系统可以用于传输等级,皮肤等等。
Encryption 加密
FileListTransfer 文件传输
FullyConnectedMesh 饱和连接, 使得所有的对等端自动连接到所有其他对等段的一个插件,选择最老的对等端作为主机。
LANServerDiscovery 局域网服务器探索
MasterServer2  
MessageFilter 消息过滤
OfflineMessagesTest 离线消息测试
PacketLoggerTest 包日志
PHPDirectoryServer2 PHP目录服务器,从或者到C++在网页上列举游戏列表。
Ping 测试ping
RackspaceConsole 托管API控制台
ReadyEvent 准备活动,同步系统中一组玩家都已经准备好一个共同的标识,在端到端环境同时启动游戏很有用,或在基于轮的游戏中进行轮次很有用。
RelayPluginTest 中转插件测试
ReplicaManager3 复制管理,   对你自己的游戏对象和玩家提供管理以实现序列化,划定范围以及创建和销毁对象更加容易的插件
Router2 向我们没有直接连接的远程系统发送网络消息
RPC3 测试/演示如何使用rpc3插件, 使用本地参数列表调用C和C++函数,使用Boost获得更多的功能
RPC4 测试/演示如何使用rpc4插件,调用C函数,不依赖额外的系统或库
SendEmail 发送email
StatisticsHistoryTest 统计数据
TeamManager 演示一个游戏大厅,用户可以在3支球队之间切换
Timestamping 时间戳
TwoWayAuthentication 双向认证,不用传输密码就可以验证一个先前设置的密码。
   
时间: 2025-01-20 00:08:26

Android RakNet 系列之一 项目介绍的相关文章

Android Hotpatch系列之-项目介绍

在手淘工作期间,内部有一套解决方案,给线上apk打补丁,直接修复bug,不用客户端升级,有严重线上bug,找到问题,写个patch,推上线就把问题解决了,用过的都说好.前段时间,他们终于把这套东西的Android端开源了,Dexposed,具体可以看详细的项目介绍.其功能就是可以加载类,替换原先apk里面某个类的方法,或者在方法之前,方法之后做些什么,比如在方法执行之前,修改传入方法的参数了,方法执行以后,修改方法的返回值,或者就是完全替换掉原先的方法. 项目里面有一个sample,介绍了如何加

Android RakNet 系列之四 实现消息、语音、文件传输

简介 RakNet在Win平台上已经实现消息.语音.文件传输了,但在Android平台下尚未实现,笔者决定把源码移植到Android平台下测试. 详情 实现消息 项目自带Chat Example Client和Chat Example Server实现消息,源码简单易懂,此处就不介绍了,直接贴上图片. 测试通过,消息是以Toast方式显示的,图片未捕捉到显示. 实现语音 Win平台下实现语音是通过Portaudio进行的,Portaudio尚未支持Android,要实现语音怎么办? Java层实

Android RakNet 系列之五 视频通讯 OpenCV4Android

简介 引入OpenCV4Android的目标是在Raknet框架下解决视频通讯的问题,目前在ubuntu下已成功实现,现在把它引用到Android平台下. OpenCV是一个基于开源发行的跨平台计算机视觉库,可以在 Windows, Android, Maemo,FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上运行.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,同时提供了Python.Ruby.MATLAB等语言的接口,实现了图像处理和计算机视觉方面

Android RakNet 系列之二 功能介绍

简介 RakNet 已经成功地在Android平台上测试成功.RakNet的文档很多,实现起来很简单,下面对Raknet功能细节进行详细了解. 详情 1.RakNet使用哪些数据结构? 结构文件 描述 DS_BinarySearchTree.h 二叉搜索树,以及AVL平衡二叉搜索树 DS_BPlusTree.h B+树,用于快速查询,删除,和插入 DS_BytePool.h 返回某个大小门限的数据块,减少内存碎片 DS_ByteQueue.h 用于读写字节的队列 DS_Heap.h 堆数据结构体

Android RakNet 系列之六 源码说明

简介 既然选择Raknet开发,那就深入研究其源码结构,为以后的应用打下基础. 详情 1.文件 文件 描述 _FindFirst 快速查找 AutopatcherPatchContext 自动更新.不停 AutopatcherRepositoryInterface 更新 获取重要的数据接口 Base64Encoder base64编码 BitStream 比特流 流结构 CCRakNetSlidingWindow 观测 CCRakNetUDT   CheckSum 校验 CloudClient

Android RakNet 系列之三 移植Portaudio

简介 PortAudio 是一个跨平台采集和播放音频的开源库,不过尚未支持Android平台,笔者决定让PortAudio支持Android.Android上,处理音频的库是OpenSL ES,从API 9开始支持的技术,通过这个标准,Android已经完全可以在native层采集和播放音频.换句话说,PortAudio支持Android,也就是支持OpenSL ES. 详情 Opensl es penSL ES 是无授权费.跨平台.针对嵌入式系统精心优化的硬件音频加速API.它为嵌入式移动多媒

Android RakNet 系列之七 线程和服务端统计测试

简介 线程是程序中一个单一的顺序控制流程.进程内一个相对独立的.可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位.在单个程序中同时运行多个线程完成不同的工作,称为多线程. Raknet中重新封装了线程,类为:RakThread. 一个好的服务端体现在最大率使用内存,但并不是每一个程序员都可以把握好内存,一旦服务端出现了问题,我们查什么?日志. 日志就是服务端的黑匣子,统计了服务端的信息. Raknet也提供了服务端连接统计. 线程详情 类定义 class RAK_D

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源热更新 Android热更新开源项目Tinker源码解析系类之三:so热更新 转载请标明本文来源:http://www.cnblogs