Russian Qt Forum

Qt => Работа с сетью => Тема начата: Пантер от Январь 20, 2012, 14:21



Название: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: Пантер от Январь 20, 2012, 14:21
При недоступности сервера, get запрос отбивается через 20 секунд. Вопрос - как увиличить это время? Ничего путнего не нагуглил.


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: thechicho от Январь 22, 2012, 16:58
проверять условие, если не удовлетворяет, еще раз запрос слать.
использовать goto :D
или цикл, в зависимости от религиозных взглядов)


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: zoro86 от Январь 25, 2012, 08:41
может так...

 request.setRawHeader("Keep-Alive", 30000);
 request.setRawHeader("Connection", "keep-alive");


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: sendevent от Январь 25, 2012, 10:54
Таймаут - на уровне ОС, не может (и не должен) изменяться приложением. Если сервак свой - можно поковырять на нем айпитейблз, в любом случае больше 20 сек на хттпшный гет в 21м веке - как минимум, странно :-)
Keep-Alive - это уровень хттп (1.1, кстати, т.е. если серв на 1.0, что не такая уж и редкость, то не поймет. Да и не причем тут оно). К тому же, если
При недоступности сервера
означает что-то вроде "Connection refused" или "No route to host" - это, кажется, сетевой (не важно, главное - не прикладной).
Во-первых, нефиг геты слать на лежащий сервер, во-вторых - требуй нормальную сетевую инфраструктуру и долива после отстоя :-)
Если все же хочется увеличить таймаут - в кедах настраивается в Параметры системы->Настройка сети->Параметры сети, в гноме наверняка чтото похожее. Через консоль - сам гугли.


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: Пантер от Январь 25, 2012, 10:56
sendevent, косяк в том, что запрашиваю данные у железки, которая в это время еще дохрена всего делает (а проц слабенький) и она может не успеть за 20 секунд ответить.


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: thechicho от Январь 25, 2012, 22:50
я предложил самое разумное и оптимальное решение.
если все же надо увеличить таймаут, потому что хочется, делай через сокеты :)


Название: Re: QNetworkAccessManager, get запрос и таймаут ожидания
Отправлено: zoro86 от Январь 26, 2012, 14:18
Тут по моему проблема не на клиенте а на сервере...
так как у меня QNAM

при вот таком раскладе без таймера держится 45 сек.

     QNetworkReply *reply = pManager.post(a_request, postData);
     connect(reply, SIGNAL(finished()), this, SLOT(slotFinished()));

потом ошибку дает... QNetworkReply::UnknownNetworkError

если у вас на серваге apach + php то надо смотреть в сторону параметра

<?php
set_time_limit();

?>