我在Linux下编写了两个代码(server.c
和client.c
)。一个用于UNIX域AF_UNIX
,另一个用于INTERNET域AF_INET
。两者都运行良好!
listen()
在两个服务器中都被调用
,并且用于backlog队列长度为3。
listen(sockfd, 3);
在UNIX域(AF_UNIX)中: 当一个客户端连接到服务器时,如果我尝试连接更多的客户端到服务器,则会有三个客户端被保留在队列中,第四个请求会被拒绝。(正如我所希望的 - 3个在等待队列中)
在INTERNET域(AF_INET)中: 超过三个请求会被保留在一个挂起队列中。
即使后台队列长度为三,为什么第四个客户端请求没有被拒绝?listen()
(和其他函数)的行为为什么取决于协议?