我在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);
...
Run Code Online (Sandbox Code Playgroud)
2048*100是一个缓冲区大小,我认为这对于用于测试的相对较小的WEB页面来说已经足够了.但正如我所提到的,我只收到1440个字节.
当服务器的响应大于1440字节时,如果使用recv()函数调用捕获所有回复"部分",我该怎么办?
提前致谢.