首页 > 代码库 > Android RakNet 系列之一 项目介绍

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


项目描述
名称 描述
DLLWindows平台下编译Raknet为动态库
LibStaticWindows平台下编译Raknet为静态库
JanssonStaticJSON库
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_PGSQLPostgreSQL备份游戏数据的数据库
RoomsPlugin 
SteamLobby 
Lobby3 
NATCompleteClient穿透完成客户端
NATCompleteServer穿透完成服务端
UDPForwarderTestUDP代理
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包日志
PHPDirectoryServer2PHP目录服务器,从或者到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 系列之一 项目介绍