Re[3]: http + recv + return 0
От: Unmanaged Россия ICQ 476611995
Дата: 27.10.07 23:03
Оценка: +1
R>Приятнее было бы, выставить в ноль последний байт имеющий смысл что-то типа *pool[length] = '\0' и не трогать остальное простанство буфера, дело в том что далее будет очень много работа с тако строкой, а заполненность дальше последнего символа строки, т.е. 0, опкодами для отладки, тот же int3, может помоч отловить выход за границы буфера.

Чтобы получить кол-во прочитанных байт в вашем случае необходимо и достаточно читать данные побайтово — recv(..., ..., 1, ...) — и собирать их в собственный буфер.
Это самый простой вариант, однако при таком подходе не стоит расчитывать на высокую производительность.

Самый правильный вариант заключается в распарсивании HTTP-заголовка ответа сервера.
В частности, необходимо добраться до значения поля Content-Length, выделить необходимое кол-во байт и прочитать их в этот буфер.
Если клиентская система — Windows, тогда можно воспользоваться наиудобнейшей библиотекой WinINet.
STATUS_INVALID_DEVICE_REQUEST
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.