public void ReadBytes(byte[] data, int position) { using (MemoryStream memoryStream = new MemoryStream(data)) { PacketReader packetReader = new PacketReader(memoryStream); memoryStream.Position = position; this.SourcePort = packetReader.BigEndianReadUInt16(); this.DestinationPort = packetReader.BigEndianReadUInt16(); this.SequenceNumber = packetReader.BigEndianReadUInt32(); this.AcknowledgementNumber = packetReader.BigEndianReadUInt32(); this.Flags = packetReader.ReadBinary(2); ReadFlags(); this.Window = packetReader.BigEndianReadUInt16(); this.Checksum = packetReader.BigEndianReadUInt16(); this.UrgentPointer = packetReader.BigEndianReadUInt16(); this.Options = packetReader.BigEndianReadBytes(3); this.Padding = packetReader.BigEndianReadBytes(3); } }
public void ReadBytes(byte[] data, int offset) { using (MemoryStream memoryStream = new MemoryStream(data)) { PacketReader packetReader = new PacketReader(memoryStream); memoryStream.Position = offset; this.ID = packetReader.ReadBytes(2); this.Flags = packetReader.BigEndianReadBytes(2); this.QDCount = packetReader.BigEndianReadUInt16(); this.ANCount = packetReader.BigEndianReadUInt16(); this.NSCount = packetReader.BigEndianReadUInt16(); this.ARCount = packetReader.BigEndianReadUInt16(); } ReadFlags(); }