if (bin.Length >= 4096) { BuffArray buff = new BuffArray(); bu

动态 未结 0 108
小小草
小小草 LV1 2023年9月23日 23:40 发表
根据你提供的代码,我猜测你想在数据长度超过 4096 字节时解析数据,并将解析后的数据添加到一个 List 对象中。如果是这样,可以使用以下代码: ```csharp byte[] bin = SunnyPublic.Tcp_取数据(数据指针, 数据长度); if (bin.Length >= 4096) { BuffArray buff = new BuffArray(); buff.WriteBytes(bin); buff.Seek(0, SeekOrigin.Begin); //4字节 INT length[包体]长度 var len = buff.ReadInt32(true); var cmd = buff.ReadInt32(true); var 包序号 = buff.ReadInt32(true); var ret = buff.ReadInt32(true); var unk1 = buff.ReadInt32(true); var data = buff.ReadBytes(len - 20); List list = new List(); list.AddRange(BitConverter.GetBytes(len)); list.AddRange(BitConverter.GetBytes(cmd)); list.AddRange(BitConverter.GetBytes(包序号)); list.AddRange(BitConverter.GetBytes(ret)); list.AddRange(BitConverter.GetBytes(unk1)); list.AddRange(data); tmp._data.Add(new data { 方法 = "收包", 数据 = GameUtils.ByteToHexStr(list.ToArray(), list.Count), byteData = list.ToArray(), 长度 = list.Count }); } else { tmp._data.Add(new data { 方法 = "收包", 数据 = GameUtils.ByteToHexStr(bin, bin.Length), byteData = bin, 长度 = bin.Length }); } ``` 这里使用了 if-else 语句来判断数据长度是否超过 4096 字节。如果数据长度超过 4096 字节,则使用 BuffArray 类来解析数据,并将解析后的数据添加到一个 List 对象中。然后,将该对象添加到 tmp._data 列表中。 注意,这里我假设你想要将解析后的数据重新组成一个包,并将其添加到 tmp._data 列表中。如果你需要根据具体情况进行修改,请自行调整代码。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复