WSARecv - обязан ли заполнить весь предоставленный буфер или нет?

Подскажите пожалуйста, из описания WSARecv - не понятно следующее:

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

Это я спрашиваю, потому что не совсем понятно, как тут действовать. Предположим я получаю то же html-тело, без заранее известно размера, то есть я вызываю WSARecv До тех пор, пока не получу признак конца html-тела, но вот, что непонятно:

-Я вызываю WSARecv c предоставленным буфером условно в 100 байт.

-Вызов вернулся, признака конца html-тела в полученных байтах нет.

-Я вызываю WSARecv опять, предварительно увеличив realloc`ом буфер еще + 100 байт и далее для WSARecv я должен предоставить указатель на адрес в моем буфере, с которого я хочу, чтобы WSARecv произвел запись принимаемых данных и вот тут и вопрос:

-Я должен ли я думать, что первый вызов WSARecv полностью заполним первые 100 байт принятыми данными или же часть из этих 100 байт, могут оказаться пустыми ? И тогда при втором вызове WSAREcv, если я укажу указатель на первый элемент второй части выделенных 100 байт, то у меня не получится непрерывных принимаемых данных, а будут прорежены или мусором или нулями, если я буфер заранее занулил.


Ответы (0 шт):