Перебор доступных proxy-серверов по списку, работа с proxy |
Здравствуйте, гость ( Вход | Регистрация )
Перебор доступных proxy-серверов по списку, работа с proxy |
Andrey77 |
12.8.2010, 21:17
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте. Пишу программу на qt , уже почти все написал и реализовал что хотел Единственный вопрос это с прокси. Программа будет использовать более 200 прокси и конечно же некоторые из этих прокси не будут работать. Так вот собственно нужно как то профиксить это. Тоесть например если прокси не отвечаает в течении какого то времени (навскидку около 5сек) то брать след. прокси.. Мысль есть а вот с реализацией туго может быть поможете?))
Сообщение отредактировал Litkevich Yuriy - 12.8.2010, 23:27
Причина редактирования: исправил название темы
|
|
|
Алексей1153 |
12.8.2010, 21:39
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Массив (или вектор) объектов + таймер подойдёт ?
Абстрактный вопрос - абстрактный ответ... |
|
|
Andrey77 |
12.8.2010, 21:57
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: 0 |
а поконкретнее сможете подсказать? вот код.
Раскрывающийся текст
|
|
|
Алексей1153 |
12.8.2010, 22:09
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
С таким форматированием и без единого комментария - тут только тебе известно, что код делает Форматирование, скажем, дело поправимое
ещё непонятно наличие connect(this,SIGNAL(good()),this,SLOT(robot())); Ведь можно просто вызвать функцию /*emit good();*/ robot(); |
|
|
Andrey77 |
12.8.2010, 22:15
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ну да можно так согласен с Вами. Но а по теме может быть чтонибудь подскажете?)
|
|
|
Алексей1153 |
12.8.2010, 22:29
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Но а по теме может быть чтонибудь подскажете а я не вижу комментариев Лично я не знаю, что делает данный код, поэтому подсказать что-то конкретное не могу. Может быть, мимо пробежит телепат - вооот тогдаааа )) предполагаю, что один из 200 прокси - это вот этот код
? Если я, к примеру, угадал, то вызов в таймере раз в 5 секунд процедуры load() (или proxy() , тебе виднее ) - это будет эквивалент массива из одного объекта прокси Так? И дело за мАлым: преобразуем данный код к виду:
где m_ProxyKeeper - это объект класса-менеджера объектов "proxy". Метод GetNextProxy() которого возвращает ссылку на следующий proxy из внутреннего массива Сообщение отредактировал Алексей1153 - 13.8.2010, 6:53 |
|
|
Andrey77 |
12.8.2010, 22:33
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: 0 |
Раскрывающийся текст #include "mainwindow.h" #include <QtGui> #include <QtNetwork/QNetworkProxy> #include <QStringList> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { view = new QWebView(this); setCentralWidget(view); i = 0; port = 0; pos3 = 0; fileName = "proxylist.txt"; connect(this,SIGNAL(good()),this,SLOT(robot())); connect(view,SIGNAL(loadFinished(bool)),this,SLOT(proxy())); load(); } void MainWindow::load(){ // Функция загрузки прокси из файла в QStringList. QFile file(fileName); if ( file.open( QFile::ReadOnly ) ) { QTextStream stream( &file ); QString line; while ( !stream.atEnd() ) { line = stream.readLine(); lines += line; } file.close(); } proxy(); } void MainWindow::proxy(){ line = lines.takeAt(i); //берем нулевой элемент lines и приравниваем его к line можно pos3 = line.indexOf(':'); //находим позицию двоеточия так как прокси у нас записаны в виде 123.456.789.000:80 if(pos3!=-1){ //если не возвращается -1 то link = line.mid(pos3+1); //копируем все что после двоеточия а именно сам порт 80 port = link.toInt(); //конвертируем его в целочисленную переменную host = line.mid(0,pos3);} //далее копируем в host все что до двоеточия QNetworkProxy proxy; //далее работа прокси думаю объяснять не стоит и так все понятно proxy.setType(QNetworkProxy::HttpProxy); proxy.setHostName(host); proxy.setPort(port); QNetworkProxy::setApplicationProxy(proxy); emit good(); //сигнал good способствует вызову функции робот в котором отображается страница и в ней прописывается текущий ип. } void MainWindow::robot(){ view->load(QUrl("http://www.myip.ru/get_ip.php?loc=")); view->page()->settings()->setAttribute(QWebSettings::AutoLoadImages, false); view->page()->settings()->setAttribute(QWebSettings::PluginsEnabled, false); } Простите за быдло код просто я буквально вторую неделю занимаюсь qt толком ничего не знаю поэтому пишу как могу. |
|
|
Алексей1153 |
12.8.2010, 22:33
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
глянь мой предыдущий пост - я там дописал, немного не успел до твоего поста )
я буквально вторую неделю занимаюсь qt толком ничего не знаю поэтому пишу как могу а я всего месяц Qt занимаюсь, но написание кода - это не относится к Qt. Это стиль, культура кода, от этого зависит понятность, читаемость ->> легче исправлять код Сообщение отредактировал Алексей1153 - 12.8.2010, 22:37 |
|
|
Andrey77 |
12.8.2010, 22:49
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: 0 |
Хорошо) Огромное спасибо буду думать реализовывать что непонятно спрашивать.
|
|
|
Litkevich Yuriy |
12.8.2010, 23:25
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Andrey77, возьми на заметку:
* Название темы должно отражать её суть * Справка по оформлению сообщений: Административный > Обратная связь > Справка по кнопкам и тэгам форума |
|
|
Текстовая версия | Сейчас: 25.4.2024, 7:04 |