1

在侦听套接字时,我希望将积压限制为零,即

listen( socket, 0 );

但是,根据下面的帖子,listen() 会忽略 backlog 参数吗?,这行不通。有什么办法可以可靠地实现积压为 0?

4

1 回答 1

3

您可以获得的最接近的是listen()accept()并且close()是一步。这应该提供与零积压相同的整体效果,除了您必须每次都重新创建和绑定套接字。

int accept_one(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
{
    int result;

    result = listen(sockfd, 1);

    if (result >= 0)
        result = accept(sockfd, addr, addrlen);

    close(sockfd);

    return result;
}

不过,我不确定你为什么想要这个。

于 2011-02-28T23:27:21.807 回答