Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Zer0neX
4 / 5 / 2
Регистрация: 10.01.2017
Сообщений: 59
1

Организация проверки времени на получение ответа от прокси-сервера

23.03.2017, 20:20. Просмотров 454. Ответов 2
Метки нет (Все метки)

Здравствуйте, товарищи-программисты. Программа занимается проверкой качества большого количества прокси.
Нужно организовать проверку количества времени, которое затрачивается на отправку запроса и получения ответа с использованием прокси-сервера.
Имеется следующая модель для прокси:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public class Proxy
    {
        #region Properties
        public string Content { get; private set; }
        public ProxyType Type { get; private set; }
        public int Timeout { get; set; }
        public string Country { get; set; }
        #endregion
        #region Constructors
        public Proxy(string Content, ProxyType Type)
        {
            this.Content = Content;
            this.Type = Type;
        }
        #endregion
    }
Реализация метода проверки(Создается 200 потоков [new Thread(CheckProxy(NewProxy())).Start()]):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 private void CheckProxy(Proxy proxy)
        {
            if (IsActive)
            {
                string Proxy = (string)proxy;
                try
                {
                    WebRequest Request = WebRequest.Create(URL_Checker);
                    Request.Proxy = new WebProxy(Proxy); // Подключаем HTTP-прокси
                    Request.Headers.Add("SomeHeader1", "SomeValue1");
                    Request.Headers.Add("SomeHeader2", "SomeValue2");
                    WebResponse Response = Request.GetResponse(); // Синхронный метод получения запроса. Может сюда прикрутить Таск и как-то засечь время?
                    string Message = new StreamReader(Request.GetResponse().GetResponseStream(), Encoding.UTF8).ReadToEnd().ToString();
                    if (Message.Contains("Blablabla"))
                    {
                        IncrementBannedProxyCounter();
                    }
                    else
                    {
                        GoodHttpList.Add(Proxy);
                        IncrementGoodProxyCounter();
                    }
                }
                catch (Exception Ex)
                {
                    Console.WriteLine(Ex.Message);
                    IncrementBadProxyCounter();
                }
                finally
                {
                    if (AllHttpList.Count > 0)
                        CheckProxy(NewProxy());
                    else
                        DecrementWorkingThreadsCounter();
                }
            }
            else
            {
                DecrementWorkingThreadsCounter();
            }
        }
А также нужно сделать ограничение на время подключения. Например: Если втечение 5000 мс отсутсвует ответ - то прервать соединение. Может поможет Stopwatch()?
Очень надеюсь на вашу помощь!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2017, 20:20
Ответы с готовыми решениями:

Бесперерывное получение ответа от сервера(Socket)
Собственно как настроить бесперерывное получение? на данный момент я получаю так: int bytesRec...

Получение ответа от сервера в label
Всем привет! Необходим такой код: Я делаю запрос на сервер где хранится мой php скрипт(только...

Получение ответа от FTP-сервера
Всем привет. Возникла проблема с получением данных от ftp сервера. Подключаюсь к...

Получение ответа от сервера
Всем доброго вечера! Есть некоторое ПО, OPC server(KeepServer). При помощи этого ПО я отправляю...

HttpUrlConnetcion получение ответа от сервера
Всем привет, как то уже задавал вопрос про HttpUrlConnection, вроде разобрался с ним, но появилась...

2
Zer0neX
4 / 5 / 2
Регистрация: 10.01.2017
Сообщений: 59
25.03.2017, 03:27  [ТС] 2
Непонятно объяснил? :'(
0
iDReeM
60 / 64 / 18
Регистрация: 21.10.2015
Сообщений: 228
Завершенные тесты: 2
27.03.2017, 07:54 3
Цитата Сообщение от Zer0neX Посмотреть сообщение
Непонятно объяснил? :'(
понятно. просто ты сам спросил и сам себе ответил. Stopwatch вполне сгодится. Главное грамотно реализовать и запускать сразу после того как запрос ушел, а после, регулярно проверять наличие ответа, если ответа по истечению тайминга нет - обрабатывать.

хотя еще таймер подойдет.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2017, 07:54

Synapse | Получение ответа от сервера
Добрый день. Отправляю пост запрос на сервер, записываю ответ в текстовый документ - всё отлично,...

SocketServer, Client. Получение ответа от сервера
Уже устал, не пойму где ошибка... Клиент: client = null; dataOutputStream = null;...

(мобильное приложение) Определение координат GPS и получение текущего времени с сервера времени интернет
Стоит задача на мобильном клиенте получить текущее время из интернет, что бы пользователи не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru