private IPacket ReadPacket(IPacketFormatter formatter) { try { ushort len = ReadUInt16(); if (Remaining < len + 1) { throw new EndOfStreamException(); } byte id = ReadByte(); byte[] payload = ReadBytes(len); return(formatter?.Unformat(id, payload)); } catch { return(null); } }
private IPacket ReadPacket(IPacketFormatter formatter, bool len_prefix = true) { try { int len = -1; if (len_prefix) { len = ReadUInt16(); } if (Remaining < len + 1) { throw new EndOfStreamException(); } byte id = ReadByte(); byte[] payload = ReadBytes((len == -1) ? (int)Remaining : len); return(formatter?.Unformat(id, payload)); } catch { return(null); } }