这是摘要,我将数据包从服务器发送到在同一台计算机上运行的客户端。由于某种原因,发送的数据包与接收的数据包不同。
这是详细信息:
数据包是使用带有调用函数的RakNet发送的:
rakPeer->Send(&bitStream, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_RAKNET_GUID, true);
以下是服务器发送的数据包的前 10 个字节:27,50,39,133,202,135,0,0,0,99 ... 1180 个字节
这是接收客户端看到的数据包的前 10 个字节(注意:50% 的时间是正确的,另一半是这样):27,50,43,40,247,134,255,255,255,99 ... 1180 多字节
第一个字节是ID_TIMESTAMP
. 字节 2-5 包含时间戳,我认为RakNet 会以某种方式混淆。第 6 个字节是明显改变的打包 ID,以及后面的 3 个字节。
我怀疑该错误是由数据包的长度引起的,因为较小的数据包似乎发送时没有任何可检测到的错误,但是我了解RakNet 会自动处理数据包损坏并在数据包太大时在内部拆分数据包。
任何帮助表示赞赏。