使用recv()调用的多个请求

时间:2012-09-04 07:22:44

标签: c recv

  

可能重复:
  Socket recv() hang on large message with MSG_WAITALL

我正在开发一个网络服务器。对于每个新的连接请求,我都会产生一个线程。在线程函数中,我使用recv()来接收请求。

    while (1) {ret = (int)recv(s, buf, sizeof(buf), MSG_WAITALL);
    SYSLOG(LOG_USER, "s=%d recv returned with ret=%d\n", s, ret);
    if (ret == -1) {
        if (errno == 11)
            continue;
        else
            break;
    } else if (ret == 0)
        break;
...........   //handling the request

但是,它只服务第一个请求,然后客户端(httperf)获得客户端超时错误。 recv()返回值为-1和errno EAGAIN。 如何通过同一连接服务多个请求?

0 个答案:

没有答案