我用C++(Linux)编写了两个简单的程序,一个服务器和一个客户端,使用套接字。最初它是一个示例客户端-服务器应用程序(回显消息发送和接收答案)。接下来,我更改了客户机以实现HTTP GET(现在不再使用我的示例服务器)。它可以工作,但无论我设置多大的缓冲区,客户端仅接收到1440个字节。我想将整个页面接收到缓冲区中。我认为这与TCP属性有关,我应该在客户端代码中实现一些循环来捕获答案的所有部分。但我不知道我应该做什么。这是我的代码:
2048 * 100 是缓冲区大小,我认为这对于用于测试的相对较小的 WEB 页面已经足够了。但是,正如我所提到的,我只收到了 1440 字节。
当服务器响应大于 1440 字节时,我该如何使用 recv() 函数调用来捕获所有的回复“部分”?
提前感谢。
...
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 字节。
当服务器响应大于 1440 字节时,我该如何使用 recv() 函数调用来捕获所有的回复“部分”?
提前感谢。
recv()
返回零。 - Marcelo Cantos