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之间的实数。)

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


网络连接类别

Android RakNet 系列之一 项目介绍_第1张图片


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


项目

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

VS如图:

Android RakNet 系列之一 项目介绍_第2张图片

Eclipse如图:

Android RakNet 系列之一 项目介绍_第3张图片


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 双向认证,不用传输密码就可以验证一个先前设置的密码。
   



你可能感兴趣的:(Android RakNet 系列之一 项目介绍)