public List <TailPacketRs> LoadTailBinaryFile(String tailBinFileName) { TailParser tailParser = new TailParser(); List <TailPacketRs> packetList = new List <TailPacketRs>(); if (!File.Exists(tailBinFileName)) { return(packetList); } using (FileStream fileStream = File.Open(tailBinFileName, FileMode.Open)) { BinaryReader binaryReader = new BinaryReader(fileStream); while (binaryReader.BaseStream.Position <= binaryReader.BaseStream.Length - 1) { byte[] headerBytes = binaryReader.ReadBytes(Marshal.SizeOf(typeof(EnvPacketHeader))); EnvPacketHeader header = Tool.ByteToStruct <EnvPacketHeader>(headerBytes, 0, headerBytes.Length); if (header.syncHeader.EqualBytes(EnvProtocol.SyncHeader) && header.dataType == (byte)EnvProtocol.DataType.DataTypeTail) { byte[] buffer = binaryReader.ReadBytes(Marshal.SizeOf(typeof(TailPacketUdp))); packetList.AddRange(tailParser.Parse(buffer)); } } } return(packetList); }
public List <FastPacket> LoadFastBinaryFile(String fastBinFileName) { List <FastPacket> packetList = new List <FastPacket>(); if (!File.Exists(fastBinFileName)) { return(packetList); } using (FileStream fileStream = File.Open(fastBinFileName, FileMode.Open)) { BinaryReader binaryReader = new BinaryReader(fileStream); while (binaryReader.BaseStream.Position <= binaryReader.BaseStream.Length - 1) { byte[] headerBytes = binaryReader.ReadBytes(Marshal.SizeOf(typeof(EnvPacketHeader))); EnvPacketHeader header = Tool.ByteToStruct <EnvPacketHeader>(headerBytes, 0, headerBytes.Length); if (header.syncHeader.EqualBytes(EnvProtocol.SyncHeader) && header.dataType == (byte)EnvProtocol.DataType.DataTypeFast) { byte[] buffer = binaryReader.ReadBytes(Marshal.SizeOf(typeof(FastPacket))); FastPacket packet; if (FastParser.Parse(buffer, out packet)) { packetList.Add(packet); } } } } return(packetList); }