// From network public Encapsulation_Packet(byte[] Packet, ref int Offset, int Length) { ushort Cmd = BitConverter.ToUInt16(Packet, Offset); if (!(Enum.IsDefined(typeof(EncapsulationCommands), Cmd))) { Status = EncapsulationStatus.Unsupported_Command; return; } Command = (EncapsulationCommands)Cmd; Offset += 2; this.Length = BitConverter.ToUInt16(Packet, Offset); if (Length < 24 + this.Length) { Status = EncapsulationStatus.Invalid_Length; return; } Offset += 2; Sessionhandle = BitConverter.ToUInt32(Packet, Offset); Offset += 4; Status = (EncapsulationStatus)BitConverter.ToUInt32(Packet, Offset); Offset += 4; Array.Copy(Packet, Offset, SenderContext, 0, 8); Offset += 8; Options = BitConverter.ToUInt32(Packet, Offset); Offset += 4; // value 24 }
public Encapsulation_Packet(EncapsulationCommands Command, uint Sessionhandle = 0, byte[] Encapsulateddata = null) { this.Command = Command; this.Sessionhandle = Sessionhandle; this.Encapsulateddata = Encapsulateddata; if (Encapsulateddata != null) { Length = (UInt16)Encapsulateddata.Length; } else { Length = 0; } }