void PacketFormat(out ServerInformation serverInfo, byte[] receivePacketBytes) { using (MemoryStream stream = new MemoryStream(receivePacketBytes)) { using (BinaryReader reader = new BinaryReader(stream)) { reader.ReadBytes(11); bool isPassword = reader.ReadByte() == 0 ? false : true; int players = reader.ReadInt16(); int maxPlayers = reader.ReadInt16(); int stringLength = reader.ReadInt32(); string hostName = Encoding.Default.GetString(reader.ReadBytes(stringLength)); stringLength = reader.ReadInt32(); string gamemode = Encoding.Default.GetString(reader.ReadBytes(stringLength)); stringLength = reader.ReadInt32(); string mapName = Encoding.Default.GetString(reader.ReadBytes(stringLength)); serverInfo = new ServerInformation(isPassword, players, maxPlayers, hostName, gamemode, mapName); } } }