private void HandleReport(byte[] data, int length) { using (MessageReader mr = new MessageReader(data)) { string serverID = mr.Read <string>(); int clientID = mr.Read <int>(); byte[] reportBytes = mr.Read <byte[]>(); lock (servers) { if (!servers.ContainsKey(clientID)) { servers.Add(clientID, new ServerListEntry()); } ServerListEntry sle = servers[clientID]; sle.FromBytes(reportBytes); } Console.WriteLine("Server " + serverID + ":" + clientID + " reported new state"); } }