我正在开发一个网络服务器。对于每个新的连接请求,我都会产生一个线程。在线程函数中,我使用 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。如何通过同一连接处理多个请求?