AcManager.Tools.Helpers.Api.KunosApiProvider.TryToPingServer C# (CSharp) Метод

TryToPingServer() приватный Метод

private TryToPingServer ( string ip, int port, int timeout ) : TimeSpan>.Tuple
ip string
port int
timeout int
Результат TimeSpan>.Tuple
        public static Tuple<int, TimeSpan> TryToPingServer(string ip, int port, int timeout) {
            using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) {
                SendTimeout = timeout,
                ReceiveTimeout = timeout
            }) {
                var buffer = new byte[3];
                try {
                    socket.SendTo(BitConverter.GetBytes(200), new IPEndPoint(IPAddress.Parse(ip), port));
                    var timer = Stopwatch.StartNew();
                    socket.Receive(buffer);

                    return buffer[0] != 200 || buffer[1] + buffer[2] <= 0 ? null :
                            new Tuple<int, TimeSpan>(BitConverter.ToInt16(buffer, 1), timer.Elapsed);
                } catch (Exception) {
                    return null;
                }
            }
        }
    }