在侦听套接字时,我希望将积压限制为零,即
listen( socket, 0 );
但是,根据下面的帖子,listen() 会忽略 backlog 参数吗?,这行不通。有什么办法可以可靠地实现积压为 0?
在侦听套接字时,我希望将积压限制为零,即
listen( socket, 0 );
但是,根据下面的帖子,listen() 会忽略 backlog 参数吗?,这行不通。有什么办法可以可靠地实现积压为 0?
您可以获得的最接近的是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;
}
不过,我不确定你为什么想要这个。