Страница 1 из 1

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

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

Заранее спасибо!

Добавлено: 13 июл 2007, 13:57
aissp
Мне кажется вы не прочитали все. Никто не гаратнирует что информация которую вы прочитали из сокета за один вызов read() ето вся посылка с клиента.

Добавлено: 13 июл 2007, 14:42
ura
В добавление, CHttpFile::Read использует InternetReadFile
посмотрите реализацию Read, и описание InternetReadFile
действительно может оказатьтя так, что данные читаются не все несмотря на то, что Read вроде как говорит что все данные прочитаны, если возвращает меньше чем указано в буфере.

Добавлено: 13 июл 2007, 23:31
Otto
Видимо проблема именно в этом: надо вызывать Read пока он не вернет 0.

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