crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Andrey77
  опции профиля:
сообщение 12.8.2010, 21:17
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 12.8.2010
Пользователь №: 1952

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте. Пишу программу на qt , уже почти все написал и реализовал что хотел Единственный вопрос это с прокси. Программа будет использовать более 200 прокси и конечно же некоторые из этих прокси не будут работать. Так вот собственно нужно как то профиксить это. Тоесть например если прокси не отвечаает в течении какого то времени (навскидку около 5сек) то брать след. прокси.. Мысль есть а вот с реализацией туго может быть поможете?))

Сообщение отредактировал Litkevich Yuriy - 12.8.2010, 23:27
Причина редактирования: исправил название темы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Andrey77
  опции профиля:
сообщение 12.8.2010, 22:33
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 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 толком ничего не знаю поэтому пишу как могу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 14.7.2025, 20:35