crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Проблема с Opera и POST
PotapovPV
  опции профиля:
сообщение 6.5.2010, 19:18
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 28.4.2010
Пользователь №: 1672

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый вечер!
ВОзникла проблема с приложением, эмулирующим работу web-сервера. Суть следующая - при обработке запроса POST от браузера Opera после получением браузера какого-либо ответа на свой запрос он рвет соединение... Кусок трафика, пойманого снифером:
Прикрепленное изображение

Кто-нибудь сталкивался с чем-нибудь подобным?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 6.5.2010, 19:32
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Какой ответ отправляешь броузеру?
Connection: Keep-Alive используешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PotapovPV
  опции профиля:
сообщение 6.5.2010, 21:27
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 28.4.2010
Пользователь №: 1672

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 6.5.2010, 20:32) *
Какой ответ отправляешь броузеру?
Connection: Keep-Alive используешь?

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

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

Хотя, я слишком рано обрадовался...
Коннектион кип элайв использую. Методы пробовал возвращать OK, REDIRECT, METHOD NOT ALLOWED
на любой их низ соединение обрывается уже указанным образом...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 6.5.2010, 22:36
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Попробуй добавить:
Keep-Alive: timeout=15, max=100
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PotapovPV
  опции профиля:
сообщение 12.5.2010, 11:08
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 28.4.2010
Пользователь №: 1672

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(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
  опции профиля:
сообщение 12.5.2010, 22:53
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


А что возвращает waitForDisconnected, если false, то глянь, что за ошибка...
А так, если у тебя в дебаге проблем не наблюдается, то как показывает практика нужно присмотреться к синхронизации...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PotapovPV
  опции профиля:
сообщение 12.5.2010, 22:56
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 28.4.2010
Пользователь №: 1672

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Спасибо за помощь.
ПОлностью переписал метод run потока, осуществляющего обработку запроса, и все заработало. Так и не понял, в чем была проблема (
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 12.5.2010, 23:01
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(PotapovPV @ 12.5.2010, 23:56) *
ПОлностью переписал метод run потока, осуществляющего обработку запроса, и все заработало. Так и не понял, в чем была проблема (
Разбирайся на досуге, чтобы если наступишь на эти же грабли знал в чем проблема или выложи здесь, как было, как стало. попробуем вместе разобраться...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.7.2019, 7:34