Raknet自带拆包功能,如若你传入的buffer大于Raknet内部可接受的数据量,则会自动开启拆包。拆包会有流量和性能的消耗,但是这都不是关键,关键是这里藏了个坑,会导致数据异常。
原因是因为在组包时,Raknet并不是根据包的顺序进行组包,而是根据接收到包的顺序。例如:发送可靠类型的包Packet1,由于包过大,拆包成Packet1_1和Packet1_2,这时进行网路传输,如果Packet1_1发生了丢包,则组包后的消息会变成Packet1_2+Packet1_1,然后你就懵比了。。。消息莫名其妙丢失。。。。