private static void ProcessICMPPing(ServerData sData, int pingTimeout, PingReply reply)
        {
            string prefix = String.Format("[P {0}][IP:p {1}:{2}]", sData.Project, sData.IP, sData.port);

            Console.WriteLine(String.Format(
                                  "{0} Reply status: {1}",
                                  prefix,
                                  reply.Status.ToString()
                                  ));

            if (reply.Status == IPStatus.TimedOut)
            {
                sData.pingICMP = pingTimeout;
            }
            else
            {
                sData.pingICMP = reply.RoundtripTime;
            }

            if (sData.pingICMP < ServerList.SHOW_THRESHOLD)
            {
                ServerList.servers.Add(sData);
                ServerList.ShakeData();
            }
            else
            {
                Console.WriteLine(String.Format(
                                      "[P {0}][IP:p {1}:{2}] Server is out of reach. Ping: {3}",
                                      sData.Project,
                                      sData.IP,
                                      sData.port,
                                      sData.pingICMP
                                      ));
            }
        }
        private static async void PingUnity(ServerData sData, int pingTimeout)
        {
            string IP = sData.IP;

            try
            {
                IPAddress.Parse(IP);
            }
            catch (FormatException)
            {
                IPHostEntry hostInfo = Dns.GetHostEntry(sData.IP);
                IP = hostInfo.AddressList.First().ToString();
            }

            Task <int> pingTask = ServerList.PingUnityAsync(IP);

            ServerList.unityPingTasks.Add(pingTask);

            try
            {
                sData.pingICMP = await pingTask;
            }
            catch (OperationCanceledException)
            {
                sData.pingICMP = pingTimeout;
            }

            if (sData.pingICMP < ServerList.SHOW_THRESHOLD)
            {
                ServerList.servers.Add(sData);
                ServerList.ShakeData();
            }
            else
            {
                Console.WriteLine(String.Format(
                                      "[P {0}][IP:p {1}:{2}] Server is out of reach. Ping: {3}",
                                      sData.Project,
                                      sData.IP,
                                      sData.port,
                                      sData.pingICMP
                                      ));
            }
        }