while ((client = accept(sock, (struct sockaddr *) &c, (socklen_t *) &clientlength)) > 0)
{
int h = 0;
int i = 0;
char el[4] = "\r\n\r\n";
while (recv(client, r , 1, 0) != 0)
{
if (h==4)
break;
if (*r == el[h])
{
h++;
}
*r++;
i++;
}
}
这是一个服务器程序,我正在使用recv()
从客户端接收输入请求。
我使用"\r\n\r\n"
表示行尾,这意味着在客户端输入一些输入后,他们必须按两次Enter才能发送消息。
但是当我用这个while循环运行我的程序时,客户端实际上必须按Enter键三次才能传递消息,为什么它是这样的,我如何修复它以便我只需要按Enter键两次?
答案 0 :(得分:0)
移动h == 4检查如下
if(*r==el[h]){
h++;
}
r++;
i++;
if (h==4) break;