Пример #1
0
        private static IEnumerable <Server> SelectServers()
        {
            Console.WriteLine();
            Console.WriteLine("Selecting best server by distance...");
            var servers = settings.Servers.Take(5).ToList();

            foreach (var server in servers)
            {
                try
                {
                    server.Latency = client.TestServerLatency(server);
                }
                catch (Exception)
                {
                    server.Latency = Int32.MaxValue;
                }

                PrintServerDetails(server);
            }
            return(servers);
        }
Пример #2
0
        private Server FindBestTestServer()
        {
            var tenLocalServers = _settings.Servers
                                  .Where(s => s.Country.Equals(_location.EnglishName))
                                  .Take(10);

            var serversOrdersByLatency = tenLocalServers
                                         .Select(s =>
            {
                try
                {
                    s.Latency = _client.TestServerLatency(s);
                }
                catch (System.Exception)
                {
                    s.Latency = int.MaxValue;
                }
                return(s);
            })
                                         .OrderBy(s => s.Latency);

            return(serversOrdersByLatency.First());
        }
Пример #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Getting speedtest.net settings and server list...");
            client   = new SpeedTestClient();
            settings = client.GetSettings();

            var servers    = SelectServers();
            var bestServer = SelectBestServer(servers);

            Console.WriteLine("Testing speed...\n");
            var downloadSpeed = client.TestDownloadSpeed(bestServer, settings.Download.ThreadsPerUrl);

            PrintSpeed("Download", downloadSpeed);
            var uploadSpeed = client.TestUploadSpeed(bestServer, settings.Upload.ThreadsPerUrl);

            PrintSpeed("Upload", uploadSpeed);

            var ping = client.TestServerLatency(bestServer);

            Console.WriteLine($"Best server ping: {ping}\n");

            Console.WriteLine("Press a key to exit.");
            Console.ReadLine();
        }