R>Приятнее было бы, выставить в ноль последний байт имеющий смысл что-то типа *pool[length] = '\0' и не трогать остальное простанство буфера, дело в том что далее будет очень много работа с тако строкой, а заполненность дальше последнего символа строки, т.е. 0, опкодами для отладки, тот же int3, может помоч отловить выход за границы буфера.
Чтобы получить кол-во прочитанных байт в вашем случае необходимо и достаточно читать данные побайтово —
recv(..., ...,
1, ...) — и собирать их в собственный буфер.
Это самый простой вариант, однако при таком подходе не стоит расчитывать на высокую производительность.
Самый правильный вариант заключается в распарсивании
HTTP-заголовка ответа сервера.
В частности, необходимо добраться до значения поля
Content-Length, выделить необходимое кол-во байт и прочитать их в этот буфер.
Если клиентская система —
Windows, тогда можно воспользоваться наиудобнейшей библиотекой
WinINet.