我在 Linux中编写了两对代码(server.c
和)。client.c
一个用于 UNIX-domainAF_UNIX
另一个用于 INTERNET-domain AF_INET
。两者都工作正常!
listen()
调用积压队列长度 = 3 inboth servers
listen(sockfd, 3);
在 UNIX 域(AF_UNIX)中: 当一个客户端与服务器连接时,如果我尝试将更多客户端连接到服务器。三个在队列中,第四个的请求被拒绝。(如我所愿 - 等待队列中的 3 个)。
在 INTERNET 域 (AF_INET) 中:超过三个的请求保留在待处理队列中。
为什么即使积压队列长度为 3,来自第四个客户端的请求也不会被拒绝?为什么listen()
(和其他)协议的行为依赖于协议?