如何结束恢复数据

时间:2015-10-12 19:19:53

标签: c++ sockets http recv

如何结束从客户端恢复数据?

我写了这个在端口80上侦听的代码
我想从客户端浏览器获取请求并发送响应

C ++:

    while ( (l = recv(client, buff, 250, 0)) > 0){
        buff[l] = '\0';
        printf(buff);
    }
    sprintf_s(buff,"<h1>Hello World</h1>");
    send(client, buff, strlen(buff), 0);
    closesocket(client);

这一切永远不会结束......在客户端浏览器向服务器发送请求后,我的代码停在 recv()函数上......这意味着recv()函数永远不会返回零。 ...
我应该怎么做才知道接收数据已经完成?

1 个答案:

答案 0 :(得分:0)

您以错误的方式处理网络请求。

阻止模式下的

recv函数在连接关闭时返回零。这意味着在recv返回零后,您无法发送数据。

在您的情况下,您应该解析收到的数据并等待请求结束标记(空行)。