我正在尝试构建一个简单的Web服务器。我使用accept函数接受请求并将请求放入队列中。最初处于睡眠状态的另一个线程在2分钟后唤醒并满足请求。到这时,所有请求都应排队等候。我观察到accept函数不接受超过6个请求
我甚至试过设置listen(s,10)
以下是我绑定套接字并接受连接的代码的一部分
if (bind(s, (struct sockaddr *)&serv, sizeof(serv)) < 0) {
perror("bind");
exit(1);
}
if (getsockname(s, (struct sockaddr *) &remote, &len) < 0) {
perror("getsockname");
exit(1);
}
listen(s, 10);
sock = s;
if (soctype == SOCK_STREAM) {
fprintf(stderr, "Entering accept() waiting for connection.\n");
while(1)
{
sock = accept(s, (struct sockaddr *) &remote, &len);
//Accepting the request and adding to to a queue
}
}