Переносил одну программу с linux на windows. В линукс все работает как нужно.
Под виндуз столкнутся с проблемой с использованием QNetworkProxy, а именно программа под windows никак не хочет работать через socks5, при том что он задан явно. Она его попросту игнорирует и производит соединение с обычного адреса.
Алгоритм установки прокси примерно такой.
QNetworkProxy *netProxy = new QNetworkProxy;
netProxy->setType(QNetworkProxy::Socks5Proxy);
QRegExp rx("(.+):(\\d+)");
if (rx.indexIn(ui.lineEdit_2->text()) != -1)
{
netProxy->setHostName(rx.cap(1));
netProxy->setPort(rx.cap(2).toLong(NULL, 10));
http->setProxy(*netProxy);
}
http->setHost(url.host(), 80);
http->get(url.path(), buffer);
Я сделал небольшой пример, который так же нормально работает в linux, но отказывается принимать прокси в windows.
Версии Qt
- в linux Qt 4.4.0 (x86_64)
- в windows Qt 4.4.1 (x86)
socks5 брал
тут, впрочем если в моем примере вписать адрес прокси типа 111:111 и программа
не будет получать страницу в windows, то это уже положительный результат. Отпишите версию Qt и все нюансы тогда
Мой пример
lomo.tar.gz (1.6Кб)