0

我生成一个像这样的字符串:

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 通常为 256x256)。但问题是 - 这是通过 RakNet (UDP) 发送的合理数据量吗?我可以将数据分成块,但我想避免这样做。

4

1 回答 1

1

RakNet 自动将数据包分解为 UDP 的合理大小,介于 574 和 1492 字节之间。这称为 MTU 大小。考虑到可靠性标头或字符串序列化膨胀, 256x256/574=115 packets minimum 256x256/1492=44 packets minimum 我建议将可靠性类型设置为RELIABLE_ORDERED,以保证数据包按顺序到达。

来源:RakNet manual & doxygen,尤其是某个页面

于 2017-08-15T20:39:08.543 回答