Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с Opera и POST
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
PotapovPV
Добрый вечер!
ВОзникла проблема с приложением, эмулирующим работу web-сервера. Суть следующая - при обработке запроса POST от браузера Opera после получением браузера какого-либо ответа на свой запрос он рвет соединение... Кусок трафика, пойманого снифером:
Нажмите для просмотра прикрепленного файла
Кто-нибудь сталкивался с чем-нибудь подобным?
ViGOur
Какой ответ отправляешь броузеру?
Connection: Keep-Alive используешь?
PotapovPV
Цитата(ViGOur @ 6.5.2010, 20:32) *
Какой ответ отправляешь броузеру?
Connection: Keep-Alive используешь?

Ответы пробовал разные. А проблема оказалась именно в Connection, оказывается, я не правильно понимал механизм его работы...
Спасибо!

Цитата(PotapovPV @ 6.5.2010, 21:57) *
Ответы пробовал разные. А проблема оказалась именно в Connection, оказывается, я не правильно понимал механизм его работы...
Спасибо!

Хотя, я слишком рано обрадовался...
Коннектион кип элайв использую. Методы пробовал возвращать OK, REDIRECT, METHOD NOT ALLOWED
на любой их низ соединение обрывается уже указанным образом...
ViGOur
Попробуй добавить:
Keep-Alive: timeout=15, max=100
PotapovPV
Цитата(ViGOur @ 6.5.2010, 23:36) *
Попробуй добавить:
Keep-Alive: timeout=15, max=100

не помогает (
Я тут обнаружил, что даже в случае корректной обработки методов GET, когда полученная от эмулятора страничка успешно отображается в браузере, после корректного завершения соединения (обмена FIN-ACK) от клиента приходит пакет с RST. Возможно, это как-то связано? МОжет, я как-то неправильно соединение закрываю?...
    
if (qsockSocket.isOpen() || qstrResponce.contains("Connection: Close"))
    {
        qsockSocket.disconnectFromHost();
        qsockSocket.waitForDisconnected();
    }



Если делать все пошагово в отладчике - запроса обрабатывается корректно, ответ браузером принимается и никаких пакетов с RST не приходит...
ViGOur
А что возвращает waitForDisconnected, если false, то глянь, что за ошибка...
А так, если у тебя в дебаге проблем не наблюдается, то как показывает практика нужно присмотреться к синхронизации...
PotapovPV
Цитата(ViGOur @ 12.5.2010, 23:53) *
А что возвращает waitForDisconnected, если false, то глянь, что за ошибка...
А так, если у тебя в дебаге проблем не наблюдается, то как показывает практика нужно присмотреться к синхронизации...

Спасибо за помощь.
ПОлностью переписал метод run потока, осуществляющего обработку запроса, и все заработало. Так и не понял, в чем была проблема (
ViGOur
Цитата(PotapovPV @ 12.5.2010, 23:56) *
ПОлностью переписал метод run потока, осуществляющего обработку запроса, и все заработало. Так и не понял, в чем была проблема (
Разбирайся на досуге, чтобы если наступишь на эти же грабли знал в чем проблема или выложи здесь, как было, как стало. попробуем вместе разобраться...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.