Linux 套接字系统调用 "accept" 永远不会返回?

Linux Socket System call "accept" never returning?

我 运行 在尝试测试一个简单的套接字程序时遇到了一个奇怪的问题。当我在这里调用 "accept" 函数时,我的程序似乎挂起...它打印出 "SENPAI PLS" 但从来没有 "SADDASSDA".

昨晚我已经通过了这部分代码。对于上下文,这是 运行 在一个大型服务器上,还有很多其他学生可能正在尝试做与我相同的项目,而且我确信他们中的一些人正在离开他们的服务器程序 运行。

服务正忙或已满是否会导致 accept 永远无法完成?

     do{  
        printf("SENPAI PLS\n");  
        clientFD=accept(serverFD, (struct sockaddr *) &clientAddress, &clientAddressSize);  
        printf("SADDASSDA\n");  
        if(clientFD==-1){  
            sleep(1);  
        }  
    }while (clientFD==-1);  

accept 不会 return 直到连接被接受(除非侦听套接字处于非阻塞模式)。