Я написал две простые программы: сервер и клиент, используя сокеты на C ++ (Linux).Изначально это был пример клиент-серверного приложения (отправка эхо-сообщения и получение ответа).Затем я изменил клиента для реализации HTTP GET (теперь я больше не использую свой пример сервера).Это работает, но какой бы размер буфера я ни установил, клиент получает только 1440 байт.Я хочу получить всю страницу в буфер.Я думаю, что это связано со свойствами TCP, и я должен реализовать некоторый цикл в коде моего клиента, чтобы охватить все части ответа.Но я не знаю, что именно я должен делать.
Это мой код:
...
int bytesSent = send(sock, tmpCharArr, message.size()+1, 0);
// Wait for the answer. Receive it into the buffer defined.
int bytesRecieved = recv(sock, resultBuf, 2048*100, 0);
...
2048 * 100 - это размер буфера, и я думаю, что этого более чем достаточно для относительнонебольшая WEB-страница, используемая для тестирования.Но, как я уже говорил, я получаю только 1440 байтов.
Что я могу сделать с вызовом функции recv () для захвата всех "частей" ответа, когда ответ сервера превышает 1440 байт?
Заранее спасибо.