WinhttpReadData медленная сеть - PullRequest
0 голосов
/ 20 июня 2011

Я загружаю exe с сервера, используя Winhttp C ++. Я использую образец кода, предоставленный в MSDN

http://msdn.microsoft.com/en-us/library/aa384104%28v=vs.85%29.aspx

Работает нормально. Обычно я складываю все прочитанные данные (чтение из WinhttpReadData) и записываю их в журнал.

Ожидаемый результат: добавленная сумма должна соответствовать размеру exe. Работает нормально в достаточно быстрой сети.

В случае очень медленной сети. Считанные данные слишком много больше исходного размера. Но когда я проверяю размер загруженного EXE-файла, он совпадает с размером сервера.

Журналы (которые складывают прочитанные данные) показывают, что он считывает больше данных, чем исходный размер.

Помните, что это происходит только в медленной сети. Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 20 июня 2011

Соблюдаете ли вы значение, возвращаемое параметром lpdwNumberOfBytesRead? Количество байтов, прочитанных при каждом вызове, может быть меньше размера буфера, который вы указали, особенно если в это время доступно меньше байтов из-за медленной работы сети.

...