Android RakNet 系列之一 項目介紹,androidraknet
簡介
項目對通訊要求越來越高了,為了滿足新的需求開始研究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 |
雙向認證,不用傳輸密碼就可以驗證一個先前設定的密碼。 |
|
|
Android的一個建立項目錯誤?
我知道了, 你new了個android項目後的視窗 ,有一項build target下面很多勾選框,勾選一個你需要的版本,越高越好啊 ,
就行了
還有個可能是你沒看見,把那個視窗拉長,那個勾選框就出現了 ,這個我一開始也遇到過 呵呵
我的android項目在pad上運行沒問題,但是在模擬器上運行出現了問題,log如下:希望大家幫忙解決一下
給你舉個例子 比如我給TextView設定text
int i = 10;
tsetView.setText(i);
這樣的話會報錯的,因為i的類型和setText的類型不一致,所以應該做如下處理
textView.setText(""+i)或者textView.setText(String.valueOf(i))
你試試 找找程式裡面是不是出現了這樣的問題