我写了这个在端口80上侦听的代码
我想从客户端浏览器获取请求并发送响应
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()函数永远不会返回零。 ...
我应该怎么做才知道接收数据已经完成?
答案 0 :(得分:0)
您以错误的方式处理网络请求。
阻止模式下的 recv
函数在连接关闭时返回零。这意味着在recv
返回零后,您无法发送数据。
在您的情况下,您应该解析收到的数据并等待请求结束标记(空行)。