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

动态 未结 0 67
小小草
小小草 LV1 2023年9月23日 23:40 发表
这段代码的作用是将接收到的数据 s 添加到 mNetRecvStream 中,并解析其中的完整包。具体流程如下: 1. 首先,通过 while 循环判断 mNetRecvStream 中剩余的字节数是否足够存放 s。如果不足,则扩容 mNetRecvStream,直到能够存放 s。 2. 将 s 复制到 mNetRecvStream 的末尾,并更新 mNetRecvIdx。 3. 通过 while 循环,从 mNetRecvStream 中解析出完整的包。具体做法是:先读取两个字节,得到包体长度 Len;然后判断 mNetRecvStream 中剩余的字节数是否足够读取一个完整的包(即长度为 Len 的字节数组);如果不足,则退出循环等待下一次接收;否则,将长度为 Len 的字节数组复制到 Buff 中,并将其添加到 mData 列表中。 需要注意的是,这里使用了 NetBitConverter.EndianBitConverter.LittleEndian.ToUInt16 方法来读取两个字节并转换为 ushort 类型的数据 Len。如果你的情况不同,请自行调整代码。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复