Russian Qt Forum

Qt => Работа с сетью => Тема начата: Skala от Июнь 02, 2009, 13:46



Название: Как проверить работу прокси?
Отправлено: Skala от Июнь 02, 2009, 13:46
Не могу найти рекомендации/решения по вопросу:
Программа скачивает из интернета через прокси ( QNetworkProxy::setApplicationProxy(proxy); ). Если прокси не работает, то QHttp выдает ошибку QHttp::HostNotFound.
Как можно уточнить эту ошибку, что проблема именно в прокси-сервере("упал", либо не верно задан и т.п.)?


Название: Re: Как проверить работу прокси?
Отправлено: mugabe от Июнь 03, 2009, 10:00
А при реальном отсутствии хоста, но при рабочем сервере ту же ошибку выдает?
По идее то не должен ошибки выдавать, а возвращать ответ от прокси.

Ну а если и так, то как вариант можно проверять работоспособность прокси подключаясь к нему с помощью QTcpSocket. Соединение удалось - значит прокси еще жив.


Название: Re: Как проверить работу прокси?
Отправлено: Admin от Июнь 03, 2009, 10:11
обычно проверяют жив ли хост так

ping host

далее, открыт ли на нем порт

telnet host port

Если вы все это сделаете в QT - то как раз и проверите жив ли прокси.

PS: обычно даже большие программы этим не заморачиваются) типа icq


Название: Re: Как проверить работу прокси?
Отправлено: mugabe от Июнь 03, 2009, 10:18
обычно проверяют жив ли хост так

ping host

далее, открыт ли на нем порт

telnet host port

Если вы все это сделаете в QT - то как раз и проверите жив ли прокси.

PS: обычно даже большие программы этим не заморачиваются) типа icq
ping не говорит ни о чем :) его может не быть, но при этом tcp на необходимый порт будет работать.
к тому же реализация ping-a на Qt возможно только через QProcess, т.е. вызывая сам ping, а это уже не кроссплатформено. Можно, конечно, сделать и свою реализацию ping-a, но для его работы будут нужны права администратора, что не всегда имеется.

Ну а вместо telnet - как раз таки QTcpSocket :)


Название: Re: Как проверить работу прокси?
Отправлено: Skala от Июнь 03, 2009, 13:41
Спасибо всем!
Буду использовать QTcpSocket.