1

我正在尝试构建一个简单的 Web 服务器。我使用接受函数接受请求并将请求放入队列。另一个最初处于睡眠状态的线程在 2 分钟后唤醒并为请求提供服务。到这个时候,所有的请求都应该在队列中排队。我观察到接受功能不接受超过 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
    }
  }
4

0 回答 0