C++ 如何结束接收数据 如何结束从客户端接收数据?
我编写了这个在端口80上侦听的代码C++ 如何结束接收数据 如何结束从客户端接收数据?,c++,sockets,http,recv,C++,Sockets,Http,Recv,我编写了这个在端口80上侦听的代码 我想从客户端浏览器获取请求并发送响应 C++:< /P> while((l=recv(client,buff,250,0))>0){ buff[l]='\0'; printf(buff); } sprintf_s(buff,“你好,世界”); 发送(客户端,buff,strlen(buff),0); closesocket(客户端); 这段时间永远不会结束。。。在客户端浏览器向服务器发送请求后,我的代码将停止运行recv()函数。。。。。这意味着recv(
我想从客户端浏览器获取请求并发送响应
C++:< /P>
while((l=recv(client,buff,250,0))>0){
buff[l]='\0';
printf(buff);
}
sprintf_s(buff,“你好,世界”);
发送(客户端,buff,strlen(buff),0);
closesocket(客户端);
这段时间永远不会结束。。。在客户端浏览器向服务器发送请求后,我的代码将停止运行recv()函数。。。。。这意味着recv()函数永远不会返回零….我应该怎么做才能知道接收数据已经完成?您以错误的方式处理网络请求
recv
当连接关闭时,阻塞模式下的函数返回零。这意味着recv
返回零后无法发送数据
在您的情况下,您应该解析接收到的数据并等待请求结束标记(空行)。如何知道接收数据已完成??我不想使用内容长度
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);