RakNet中文手册

Jenkins Software

 介绍

参考手册更新于2011/7/7。当前版本信息见readme.txt

本手册译者:xiao_0429

RakNet 一款免费的低代价的C++和C#游戏引擎库,允许程序员在程序中加入响应时间严格的网络应用。它大多用于游戏,但是独立于游戏应用程序,也即它并不与某一个游戏相关联,完全可以独立应用于网络程序。RakNet的设计实现了快速,易用,独立于应用,跨平台以及特色集.

 快速开始

多人游戏的组成 
RakNet简介
系统概述
详细实现
教程(主要介绍如何在VS2005中配置RakNet)
编译设置 (Visual Studio)
Compiler Setup (XCode)
可选的第三方的工具或库
如何做

 培训视频

主要特色介绍
教程1:RPC3
教程2:ReplicaManager3
教程3:Autopatcher(自动补丁系统)
教程4:一个完整的示例,包含对象复制,队伍,玩家创建房间和游戏大厅,NAT穿越,以及主机迁移

 特色视频

使用SQLiteClientLoggerPlugin实现网络日志
云计算下的大规模服务器服务

基础

Startup 
- 关于启动RakNetInterface,和线程休眠时间的解释

Connecting 
- 如何发现和连接到其他的系统,如果有问题又如何做

Creating Packets
- 如何使用结构体和位流创建用户数据包,以及如何编码时间戳.

Sending Packets
- 如何发送已经准备好的数据包,使用那些参数.

Receiving Packets
- 如何将一个原始数据转换为一个可以通过结构体或位流读取的数据包.

SystemAddress
- 描述SystemAddress结构体在数据包和一些函数参数中的目的以及使用.

Bitstreams
-  RakNet的位流类概述,以及通过API使用该类.

Reliability types
- 对用于控制如何发送数据的一些参数进行描述.

Network Messages
- API发送给用户的消息类型介绍,在MessageIndentifiers.h中也有介绍.

Timestamping your packets
- 描述时间戳的目的.

NetworkIDObject
- 给每一个类分发一个整个系统都可以使用的唯一标识的实用类.

Statistics
- RakNet提供的统计功能.

Secure connections
- 如何激活和使用安全连接.

Cloud hosting
- 以更低代价获得服务器主机

Rackspace interface
- Rackspace的C++接口,可以用编程方法在服务器上进行创建,删除,重启,映像或执行其他的操作.

NAT traversal architecture
- 如何将UPNP,NAT类型检测,NAT穿透和Router2结合起来,使得P2P连接更快更有效连接.

Preprocessor Directives
-用不同的编码设置重新编译库文件.

Custom Memory Management
- 控制台上,用于内存追踪等等.

IPV6 support
- 对下一代网络IP地址格式的支持.

Marmalade integration
- 与IOS和Android平台的Marmalade SDK整合.

 插件
Plugin Interface 2
- 所有插件的基础类

Autopatcher
- 包涵在RakNet的自动补丁系统.

RPC3
- 使用本地参数列表调用C和C++函数,使用Boost获得更多的功能.

RPC4
-调用C函数,不依赖额外的系统或库.

CloudComputing
- 云计算。客户端将内存或事件传递到云端,任何连接到客户端可以查询或订阅这块内存或事件数据.

Connection Graph
- 维护了整个网络的拓扑图的一个插件.

Directory Delta Transfer
- 在目录之间发送变化或丢失的文件。必要地,简单的补丁系统可以用于传输等级,皮肤等等.

File List Transfer
- 用于发送用FileList 结构体编码的文件列表

Fully Connected Mesh 2
- 使得所有的对等端自动连接到所有其他对等段的一个插件,选择最老的对等端作为主机.

Lobby2Client - PC
-PostgreSQL备份游戏数据的数据库,包括玩家,好友,分组,消息

Lobby2Client - Steam
- Steamworks使用Lobby2接口驱动后端

Lobby2Client - PS3
- 使用Lobby2接口的PS3 NP 后端

Lobby2Client - XBOX 360
- 实时后端和音频聊天支持,使用带有RakVoiceXBOX360插件和FullyConnectedMess2插件支持的Lobby2接口

Lobby2Client - Games for Windows Live
-和XBOX360类似,但是运行在Windows上

Message Filter
- 基于发送者的额外安全设置阻止不需要的网络消息.

NAT type detection
- 查找你所在的NAT类型,保持用户不能够单独连接的用户

NAT punchthrough
- 连接NAT后面的用户, 要求端到端,音频通信,或允许玩家将自己的主机做服务器

Packet Logger
- 打印网络传输的情况到屏幕,文件或者其他的地方

RakVoice
- RakVoice介绍,参考RakVoice.h获得完整实现以及更多细节内容

Ready Event
-同步系统中一组玩家都已经准备好一个共同的标识,在端到端环境同时启动游戏很有用,或在基于轮的游戏中进行轮次很有用

Replica Manager 3
- 对你自己的游戏对象和玩家提供管理以实现序列化,划定范围以及创建和销毁对象更加容易的插件

Router2
- 向我们没有直接连接的远程系统发送网络消息

SQLite3LoggerPlugin
- 使用SQLite穿件一个网络日志文件,基于SQLite3Plugin

SQLite3Plugin
- 使用SQLite通过网络执行语句(替代轻型数据库)

TeamManager
-给玩家请求和赋予队号,支持客户端/服务器或端到端

TwoWayAuthentication
- 实现Two Way Authentication,不用传输密码就可以验证一个先前设置的密码

 C# 和SWIG

Swig教程
- 如何从C#使用SWIG和单道运行RakNet

功能集成
-如何统一使用RakNet,以及如何升级到4.x版

  实用工具

Crash Reporter
- 应用程序崩溃时发送mini废物,写到磁盘或发送Email

Console Server
- 到服务器的基于文本的后门,使用安全的RakNet或telnet,允许执行预先设置的命令或任意的字符串

Email Sender
- 由崩溃报告器使用通过TCP发送emails

String Compressor / String Table
- 用于编码字符串,以获得更少的带宽使用和更加安全

TCP Interface
- TCP连接的封装类

PHP Directory Server
- 从或者到C++在网页上列举游戏列表

 3D Demos

Ogre 3D Interpolation Demo
- 使用Ogre 3D通过客户端/服务器网络显示一个爆米花的实例,使用ReplicaManager3

Irrlicht FPS Demo
- 使用Irrlicht显示一个3DFPS实例,使用端到端的NAT穿透。也是使用ReplicaManager3

 技术设计文档
UML 图
潜在的蓝牙支持
 数据结构

DS_BinarySearchTree.h - Binary search tree, and an AVL balanced binary search tree.
DS_BPlusTree.h - BPlus tree for fast lookup, delete, and insert.
DS_BytePool.h - Returns data blocks at certain size thresholds to reduce memory fragmentation.
DS_ByteQueue.h - A queue specialized for reading and writing bytes.
DS_Heap.h - Heap data structure, includes both minheap and maxheap.
DS_HuffmanEncodingTree.h - Huffman encoding tree, used to find the minimal bitwise representation given a frequency table.
DS_HuffmanEncodingTreeFactory.h - Creates instances of the Huffman encoding tree.
DS_HuffmanEncodingTreeNode.h - Node in the Huffman encoding tree.
DS_LinkedList.h - Standard linked list.
DS_List.h - Dynamic array (sometimes improperly called a vector). Also doubles as a stack.
DS_Map.h - (Associative array) Ordered list with an per-element sort key.
DS_MemoryPool.h - Allocate and free reused instances of a fixed size structure, used to reduce memory fragmentation.
DS_Multilist_h - (Added 4/8/2009) Combines a list, stack, queue, and ordered list into one class with a common interface.
DS_OrderedChannelHeap.h - Maxheap which returns a node based on the relative weight of the node's associated channel. Used for task scheduling with priorities.
DS_OrderedList.h - List ordered by an arbitrary key via quicksort.
DS_Queue.h - Standard queue implemented with an array
DS_QueueLinkedList.h - Standard queue implemented with a linked list
DS_RangeList.h - Stores a list of numerical values, and when the values are sequential, represents them as a range rather than individual elements. Useful when storing many values that are usually sequential.
DS_Table.h - Table with columns and rows, and operations on that table.
DS_Tree.h - Noncyclic graph
DS_WeightedGraph.h - Graph with weighted edges, used for routing via Dijkstra's algorithm
RakString - String implementation, up to 4.5 times faster than std::string

 技术支持

 

FAQ
Debugging Disconnections
Programming Tips
Revision Log
Forum
Email Author

转载于:https://www.cnblogs.com/lihuixian001/archive/2012/09/14/2684012.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Raknet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。   Radnet有以下特点:   l 高性能 在同一台计算机上,Raknet可以实现在两个程序之间每秒传输25,000条信息;   l 容易使用 Radnet有在线用户手册,视频教程。每一个函数和类都有详细的讲解,每一个功能都有自己的例程;   l 跨平台,当前Radnet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code: Blocks, DevCPP 和其它平台上;   l 在线技术支持 RakNet有一个活跃的论坛,邮件列表,你只要给他们发信,他们可以在几小时之内回复你。   l 安全的传输 RakNet在你的代码中自动使用SHA1, AES128, SYN,用RSA避免传输受到攻击   l 音频传输 用Speex编码解码,8位的音频只需要每秒500字节传输。   l 远程终端 用RakNet,你能远程管理你的程序,包括程序的设置,密码的管理和日志的管理。   l 目录服务器 目录服务器允许服务器列举他们自己需要的客户端,并与他们连接。   l Autopatcher Autopatcher系统将限制客户端传输到服务端的文件,这样是为了避免一些不合法的用户将一些不合法的文件传输到服务端。   l 对象重载系统   l 网络数据压缩 BitStream类允许压缩矢量,矩阵,四元数和在-1到1之间的实数。   l 远程功能调用   l 强健的通信层 可以保障信息按照不同的信道传输   RakNet支持两种版权,如果你是做免费游戏,RakNet将是免费的。相反,你必须支付一定的费用。   从这里你可以下载到最新的RakNet:   http://www.rakkarsoft.com/raknet/downloads/RakNet.zip   例子:   #include   #include   #include   #include "RakClientInterface.h" //建立客服端所需要的信息,其中包括客服端的建立,连接和数据的发送和接收   #include "RakNetworkFactory.h" //用于管理我们在程序中使用的类,包括类内存分配和类内存的释放   #include "RakServerInterface.h" //用于建立服务器所需用的信息,包括服务器的建立,连接和数据的发送和接收   #include "PacketEnumerations.h" //用于处理网络引擎在运行过程中得到的信息   Packet *packet;//网络传输中用于存储数据的一个数据结构   /////////////////////////////////////////////////////   /*   Struct Packet   {   PlayerID playerId; //表明了包的出处。每一个连接服务器的客户端都将被分配一个唯一的ID号,用于标识自己。   Unsigned long length; //数据长度   Unsigned long bitsize; //比特大小   Char *data; //包中的数据   }   */   /////////////////////////////////////////////////////   int main(void)   {   char str[512];   RakClientInterface *rakClientInterface;   RakServerInterface *rakServerInterface;   printf("(C)客服端 (S)服务器?\n");   gets(str);   if (str[0]=='c')   {   rakClientInterface=RakNetworkFactory::GetRakClientInterface();//初始化一个客户端实例,为它分配内存   rakServerInterface=0;   printf("客服端已经建立。");   }   else   {   rakClientInterface=0;   rakServerInterface=RakNetworkFactory::GetRakServerInterface();//初始化一个服务器实例,为它分配内存   printf("服务器已经建立。");   }   if (rakServerInterface)   {  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值