Проблема с WININET из C++

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Otto
Пользователь
Сообщения: 91
Зарегистрирован: 08 июл 2006, 23:09
Откуда: Vancouver

Проблема с WININET из C++

Сообщение Otto »

Помогите пожалуйста с проблемой HTTP запроса через wininet из C++:
CHttpFile->Read иногда возвращает обрезанный ответ сервера. Длина ответа меняется случайными образом.
Дело осложняется тем, что у нас все работает ОК, а проблема возникает на машине клиента.
Где копать?

Заранее спасибо!
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

Мне кажется вы не прочитали все. Никто не гаратнирует что информация которую вы прочитали из сокета за один вызов read() ето вся посылка с клиента.
ura
Житель
Сообщения: 915
Зарегистрирован: 09 мар 2003, 22:46

Сообщение ura »

В добавление, CHttpFile::Read использует InternetReadFile
посмотрите реализацию Read, и описание InternetReadFile
действительно может оказатьтя так, что данные читаются не все несмотря на то, что Read вроде как говорит что все данные прочитаны, если возвращает меньше чем указано в буфере.
Аватара пользователя
Otto
Пользователь
Сообщения: 91
Зарегистрирован: 08 июл 2006, 23:09
Откуда: Vancouver

Сообщение Otto »

Видимо проблема именно в этом: надо вызывать Read пока он не вернет 0.

aissp, ura: большое вам спасибо!
Ответить