0
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?

4

1 回答 1

0

向下移动 h==4 检查如下

    if(*r==el[h]){
    h++;
    }

    r++;
    i++;

    if (h==4) break;
于 2013-09-13T03:19:49.040 回答