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 )); } }