while (true) { if (mNetRecvStream.Length - mNetRecvIdx < s.Length)

动态 未结 0 62
小小草
小小草 LV1 2023年9月23日 23:40 发表
这段代码的作用是将从服务器接收到的数据存储在 mNetRecvStream 数组中,并对其进行解析。具体来说,它会先检查当前接收缓冲区中是否有足够的数据可以解析出一个完整的数据包(即包含数据长度和数据内容),如果没有,则扩大接收缓冲区的大小并继续等待接收。 当接收缓冲区中有足够的数据时,它会使用 BitConverter.ToInt32 方法读取前四个字节,得到数据包的长度 Len。由于网络字节序通常为大端序,因此需要先判断当前系统是否为小端序,如果是,则使用 Array.Reverse 方法将 lenBytes 数组反转,使其变成大端序。最后使用 BitConverter.ToInt32 方法将 lenBytes 数组转换为 int 类型的数据 Len。 接着,它会检查接收缓冲区中是否包含完整的数据包,如果是,则将数据包的内容复制到 Buff 数组中,并将其输出到控制台上。同时,它还会将数据包的内容、长度、方法等信息保存到 mData 列表中,以便后续处理。 最后,它会将已经解析过的数据包从接收缓冲区中移除,并将剩余的数据移到缓冲区的起始位置,以便下一次解析。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复