Raknet

高性能C++的UDP网络库
授权协议 商业软件
开发语言 C/C++
所属分类 程序开发、 高性能网络开发库
软件类型 商业软件
地区 不详
投 递 者 田焕
操作系统 Windows
开源组织
适用人群 未知
 软件概览

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

Raknet有以下好处:

  • 高性能 在同一台计算机上,Radnet可以实现在两个程序之间每秒传输25,000条信息;
  • 容易使用 Raknet有在线用户手册,视频教程。每一个函数和类都有详细的讲解,每一个功能都有自己的例程
  • 跨平台,当前Raknet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code: Blocks, DevCPP 和其它平台上
  • 在线技术支持 RakNet有一个活跃的论坛,邮件列表,你只要给他们发信,他们可以在几小时之内回复你。
  • 安全的传输 RakNet在你的代码中自动使用SHA1, AES128, SYN,用RSA避免传输受到攻击
  • 音频传输 用Speex编码解码,8位的音频只需要每秒500字节传输。
  • 远程终端 用RakNet,你能远程管理你的程序,包括程序的设置,密码的管理和日志的管理。
  • 目录服务器 目录服务器允许服务器列举他们自己需要的客户端,并与他们连接。
  • Autopatcher Autopatcher系统将限制客户端传输到服务端的文件,这样是为了避免一些不合法的用户将一些不合法的文件传输到服务端。
  • 对象重载系统
  • 网络数据压缩 BitStream类允许压缩矢量,矩阵,四元数和在-1到1之间的实数。
  • 远程功能调用强健的通信层 可以保障信息按照不同的信道传输
  • RakNet支持两种版权,如果你是做免费游戏,RakNet将是免费的。相反,你必须支付一定的费用。
  •   详细实现 实现        实现RakNet你所要做的就是在程序中获得一个RakPeer的实例。        有一些头问价是你必须需要的: 头文件 #include "MessageIdentifiers.h" #include "RakPeerInterface.h" #include "RakNetTypes.h" MessageIdetifiers.h包含了一个巨大的枚举数据,表示了

  • RakNet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。 外文名 RakNet 最新版本 4.081适用系统 Windows,Linux,Mac OS 适用平台 IOS,Android,Windows Phone 8 适用引擎 Unity,Unreal engine 目录 RakNet特点 编辑 RakN

  • RakNet 4.081 Copyright (c) 2014, Oculus VR, Inc. Package notes The Help directory contains index.html, which is full help documentation in HTML format The Source directory contain all files required f

  • #include "../RakNet/src/RakPeerInterface.h" #include "../RakNet/src/RakNetTypes.h" #include "../RakNet/src/MessageIdentifiers.h" #include "../RakNet/src/BitStream.h" #include "../RakNet/src/RakString.

  • //下面这段程序使用的是当前最新的RakNet_PC-4.05 //把RakNet下载下来后先编译 //依赖的库:ws2_32.lib RakNetLibStaticDebug.lib #include <stdio.h> #include <string.h> #include "RakPeerInterface.h" #include "MessageIdentifiers.h" #inclu

  • 本程序是一个实验RakNet RPC3 & NetworkIDManager的Demo,修改和扩充自RakNet的RPC3例子。     公共NPC基类: CNetBNPC.h #ifndef ___NET_Common_CNetBNPC_H__ #define ___NET_Common_CNetBNPC_H__ #include <MessageIdentifiers.h> /*

  •   连接到其他的系统   寻找连接目标   有5个方式来发现要连接到的系统:        1. 直接输入IP地址(这个广为人知)。        2. LAN广播        3. 使用ClientServer/CloudClient插件        4. 使用游戏大厅服务器或房间插件        5. 使用目录服务器DirectoryServer 选择1:输入IP地址        从编

  • 开篇        引子:这个问题一直萦绕我好长一段时间了,要系统学习一下RakNet,可是未曾想一直没有实现!真是应验自己的那句话:说了不算,算了不说!很长时间过去了,短短人生路,不知道自己还有多少个这样长的时间(迷茫中),趁现在的大好年华,还是学习一些知识吧!        以前曾经在毕业设计中应用过RakNet,仅仅为了应付毕业,草草学习了一下,写了一些东西之后,毕业设计顺利通过,也就将这个

  • 在很久以前本人就发现了RAKNET,对比了几款开源网络库,发现RAKNET是一个不错的选择。RAKNET更适用于做游戏开发,但在我的手机点对点视频聊天项目里还是用了RAKNET.使用RAKNET做为中介服务器,手机P2P成功后还是使用RAKNET通讯。效果不错,视频语音不会丢包,很清晰流畅。当然在网络条件不好的情况下,可以设置RAKNET允许丢包,仍然能有不错的效果。 raknet的缺点是不支持组

  • NAT穿透的结构   结合如何使用UPNP,NAT类型检测,NAT穿透,以及Router2,使得P2P连接迅速而有效完成。        RakNet 使用了4个独立的系统,每一个系统都解决了无法连接到其他系统问题的一部分问题。这些系统是:        1. NAT类型检测 – 发现是否我们有路由器,以及路由限制类型是怎样。        2. UPNP – 告诉路由打开指定的端口号      

  • 下载最新的RakNet源码,解压之后进入Source目录下:   编译第一部分:普通编译(转载自:http://blog.csdn.net/fengge8ylf/article/details/5412394) 1、编译成静态库 g++ -c *.cpp ar rc libraknet.a *.o g++ -shared -O3 -fPIC -o libraknet.so.0.0.0 *.cpp

  • 在本系列中使用的raknet版本号为3.611   // RakNetRpcClient.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdafx.h" #include "Winsock2.h" #include "Kbhit.h" #include "stdio.h" #include "stdlib.h" #include "R

  • 1.编译成静态库。    g++ -c *.cpp    ar rc libraknet.a *.o    g++ -shared -O3 -fPIC -o libraknet.so.0.0.0 *.cpp 2.将生成的库文件拷贝到系统库下   cp libraknet.so.0.0.0 libraknet.a /usr/local/lib/ 3.建立连接 ln -s /usr/local/lib

  • 系统概览   系统结构        RakNet大致上说定义了3个库:网络通信哭,用于网络通信的插件模块,和支撑功能。        网络通信是用两个类来提供的。RakPeer和TCPInterface。RakPeer是游戏使用的主要的类,它基于UDP。它提供了连接,连接管理,拥塞控制,远程服务器检测,带外数据,连接统计,延迟,丢包仿真,阻止列表和安全连接功能。        TCPInterf

  • 连接到其他的系统   寻找连接目标   有5个方式来发现要连接到的系统:        1. 直接输入IP地址(这个广为人知)。        2. LAN广播        3. 使用ClientServer/CloudClient插件        4. 使用游戏大厅服务器或房间插件        5. 使用目录服务器DirectoryServer 选择1:输入IP地址        从编码的

  • 详细实现 实现        实现RakNet你所要做的就是在程序中获得一个RakPeer的实例。        有一些头问价是你必须需要的: 头文件 #include "MessageIdentifiers.h" #include "RakPeerInterface.h" #include "RakNetTypes.h" MessageIdetifiers.h包含了一个巨大的枚举数据,表示了Ra

  • 创建数据包   如何将游戏数据编码到数据包中        运行RakNet的系统,事实上所有在因特网上的系统,都是通过人们所熟知的数据包进行通信。或更加准确点在UDP下,它用的是数据报。每一个数据报由RakNet创建,并且包含了一条或多条消息。消息可以由你创建,例如位置或健康(health这个词确实不知道如何翻译好),或者有时由RakNet内部创建的数据,例如pings。按照惯例,消息的第一个字

  • UDT库 https://sourceforge.NET/projects/udt/?source=directory     C#包装:https://github.com/dump247/udt-net      UDT协议是什么?是一种基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)。 UDT协议的主要作用是什么?UDT的主要目的是支持

  • 启动RakNet   StartupResult RakPeer::Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority );   首先要做的就是调用RakPeerInterface::Startu

  • NAT穿透的结构   结合如何使用UPNP,NAT类型检测,NAT穿透,以及Router2,使得P2P连接迅速而有效完成。        RakNet 使用了4个独立的系统,每一个系统都解决了无法连接到其他系统问题的一部分问题。这些系统是:        1. NAT类型检测 – 发现是否我们有路由器,以及路由限制类型是怎样。        2. UPNP – 告诉路由打开指定的端口号      

  • Rakspace 云服务器API的C++接口   用编程的方式管理应用服务器        Rakspace提供了基于API的HTTPS,具体的API信息可以在连接中找到(http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf)。使用TCPInterface时,RakNet支持HTTPS,编译时需要将RakN

  • 学习raknet的第一篇日志,这个测试项目是做stun穿透用的,就是传说中的stun服务。 开始分析代码

  • Lobby2Client_360概览   带有Live的RakNet接口,包括音频聊天        XBOX没有提供房间和大厅的概念,事实上还是要求用户实现网络通讯来配置游戏比赛。RakNet使用Lobby2Client_360插件来处理这个问题。XBOX也不处理主机迁移,然而,如果如果加入了FullyConnectedMesh2插件,Lobby2Client_360插件可以自动检测主机迁移,自

  • 安全连接   确保网络传输安全        一旦在线游戏达到了一定的流行程度,人们就开始尝试作弊。那么你就需要在游戏层和网络层考虑这个这个作弊或欺骗问题。RakNet通过提供安全连接来处理这些问题,当然你也可以不使用这个机制。        RakNet提供了使用256位传输层安全的数据安全解决方案。每一个域服务器连接都拥有一个256位的椭圆曲线密钥协议实现前向安全保护。        Cook

 相关资料
  • 我正在研究一个基于代理的流行病模型。这个想法是单个代理根据他们在网络中观察到的情况(基于距离)做出决定。我在每个代理中都有几个功能,可以动态更新受感染接触者的数量,接触者表现出特定行为等。 下面的代码用于计算代理网络中受感染的联系人。 至少还有3个这样的函数可以保持表示代理网络中其他功能的其他代理的计数。现在,当我 有没有一种计算效率更高的方法来跟踪更大人口的网络统计数据?

  • 问题内容: 我正在选择一个网络库来实现不能花费任何微秒时间的客户端/服务器系统。它将实现自己的协议来发送和接收消息。我正在寻找一个好的NIO框架,该框架将使我能够轻松开发服务器和客户端,而不必过多担心低层选择器的细节。每个人都向我推荐Netty,但在向团队提出框架之前,我想尝试2或3个其他选择。我不太喜欢Netty的一件事是它如何使用自己的ByteBuf实现和引用计数来处理ByteBuffer。谁

  • 导语 这一节讲述UDP编程的知识。UDP(UserDatagram Protocol即用户数据报协议)是一个轻量级的,不可靠的,面向数据报的无连接协议。对于UDP我们不再进行过多介绍,如果你对UDP不是很了解,而且不知道它有什么用,那么这里就举个简单的例子:我们现在几乎每个人都使用的腾讯QQ,其聊天时就是使用UDP协议进行消息发送的。就像QQ那样,当有很多用户,发送的大部分都是短消息,要求能及时响

  • UDP 简介 UDP 是一个简单的传输层协议。和 TCP 相比,UDP 有下面几个显著特性: UDP 缺乏可靠性。UDP 本身不提供确认,序列号,超时重传等机制。UDP 数据报可能在网络中被复制,被重新排序。即 UDP 不保证数据报会到达其最终目的地,也不保证各个数据报的先后顺序,也不保证每个数据报只到达一次 UDP 数据报是有长度的。每个 UDP 数据报都有长度,如果一个数据报正确地到达目的地,

  • UDP是一种对象数据报的传输层协议,它不提供可靠性,其数据报被封装在IP数据报中,封装格式如下图所示: 首部格式为 源端口号和目的端口号分表表示了发送进程和接收进程 UDP长度字段包括了UDP首部和UDP数据的字节长度 UDP检验和覆盖了UDP首部和UDP数据(IP首部检验和只覆盖了IP首部,不覆盖数据报中的任何数据) UDP数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。解

  • 最简单的经验法则之一是记住硬件喜欢数组,并且针对数组的迭代进行了高度优化。对许多问题的一个简单优化只是停止使用花哨的数据结构,只使用简单的数组(或C++中的std::vectors)。这需要一些时间来适应。 C++类是那种“奇特的数据结构”,即一种可以用数组代替的数据类型,以在C++程序中获得更高的性能吗?