public void Read(BinaryReaderBE Reader) { Byte b1 = Reader.ReadByte(); Byte b2 = Reader.ReadByte(); Byte b3 = Reader.ReadByte(); Number = (UInt32)b1 | ((UInt32)b2 << 8) | ((UInt32)b3 << 16); }
public void Read(BinaryReaderBE Reader) { Flags.Read(Reader); Length = Reader.ReadUInt16BE(); if (Flags.IsReliable()) { MessageIndex.Read(Reader); } if (Flags.IsSequenced()) { SequenceIndex.Read(Reader); } if (Flags.IsSequenced() || Flags.IsOrdered()) { OrderIndex.Read(Reader); OrderChannel = Reader.ReadByte(); } if (Flags.Split) { SplitCount = Reader.ReadUInt32BE(); SplitId = Reader.ReadUInt16BE(); SplitIndex = Reader.ReadUInt32BE(); } Payload = Reader.ReadBytes(Length); }
public void Read(BinaryReaderBE reader) { Byte flags = reader.ReadByte(); Split = (flags & 0x10) == 0x10; Reliability = (EncapsulatedReliability)(flags >> 5); }
private void HandleEncapsulatedPayload(byte[] payload) { using (var encapMemory = new MemoryStream(payload)) using (var encapStream = new BinaryReaderBE(encapMemory)) { var encapId = encapStream.ReadByte(); HandlePacketDecapsulated(encapId, encapStream); } }
private void OnPacketReceived(IPEndPoint address, byte[] packet) { using (var stream = new MemoryStream(packet)) using (var reader = new BinaryReaderBE(stream)) { byte id = reader.ReadByte(); if (id < 0x80) { var decoded = DecodePacket(id, reader); HandlePacket(address, decoded); } else { if (Session != null) { Session.HandlePacket(id, reader); } else { throw new Exception("Unhandled session packet - no session established!"); } } } }