![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Andrey77 |
![]() ![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте. Пишу программу на qt , уже почти все написал и реализовал что хотел Единственный вопрос это с прокси. Программа будет использовать более 200 прокси и конечно же некоторые из этих прокси не будут работать. Так вот собственно нужно как то профиксить это. Тоесть например если прокси не отвечаает в течении какого то времени (навскидку около 5сек) то брать след. прокси.. Мысль есть а вот с реализацией туго может быть поможете?))
Сообщение отредактировал Litkevich Yuriy - 12.8.2010, 23:27
Причина редактирования: исправил название темы
|
|
|
![]() |
Andrey77 |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 12.8.2010 Пользователь №: 1952 Спасибо сказали: 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 толком ничего не знаю поэтому пишу как могу. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 20:35 |