2016-09-02 46 views
0

地形高度數據I生成的字符串,象這樣:發送帶有RakNet

std::string str = ""; 
str += std::to_string(MapSize); 

for (int x = 0; x < MapSize; x++) { 
    for (int z = 0; z < MapSize; z++) { 
     str += " "; 
     str += std::to_string(x); 
     str += " "; 
     str += std::to_string(heights[x][z]); 
     str += " "; 
     str += std::to_string(z); 
    } 
} 

高度的數據量是MapSize^2(MapSize通常爲256×256)。但是問題是 - 這是否是通過RakNet(UDP)發送的數據?我可以將數據分成塊,但我想避免這樣做。

回答

1

RakNet會自動將數據包分組爲UDP,大小介於574和1492字節之間。 這被稱爲MTU大小。考慮可靠性標題或字符串序列化膨脹, 256x256/574=115 packets minimum 256x256/1492=44 packets minimum 我建議將可靠性類型設置爲RELIABLE_ORDERED,以便保證數據包到達並按順序排列。

來源:RakNet手冊& doxygen,特別是a certain page