在收听套接字时,我最好将积压限制为零,即
listen( socket, 0 );
但是,根据以下帖子listen() ignores the backlog argument?,这不起作用。有什么方法可以可靠地实现0的积压工作吗?
答案 0 :(得分: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;
}
我不知道为什么你会想要这个。