Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在套接字中使用fork()调用后服务器未退出_C_Sockets_Fork - Fatal编程技术网

C 在套接字中使用fork()调用后服务器未退出

C 在套接字中使用fork()调用后服务器未退出,c,sockets,fork,C,Sockets,Fork,在添加fork()之前,下面的代码运行良好,但在调用fork()调用之后,服务器将无限运行。我希望服务器在为特定数量的客户端提供服务后退出,并希望服务器在之后终止 for(count = 0; count < 2; count++) { client_socket = accept(server_socket, NULL, NULL); if(fork() == 0) { printf("from Server\n"); } clo

在添加fork()之前,下面的代码运行良好,但在调用fork()调用之后,服务器将无限运行。我希望服务器在为特定数量的客户端提供服务后退出,并希望服务器在之后终止

for(count = 0; count < 2; count++)
{
    client_socket = accept(server_socket, NULL, NULL);
    if(fork() ==  0)
    {
        printf("from Server\n");
    }
    close(client_socket);
}

    close(server_socket);
}
for(计数=0;计数<2;计数++)
{
客户端\u套接字=接受(服务器\u套接字,NULL,NULL);
如果(fork()==0)
{
printf(“从服务器\n”);
}
关闭(客户端_套接字);
}
关闭(服务器_套接字);
}

如果您想为特定数量的客户端提供服务,然后终止,请尝试:

#define MAX_CLIENTS 3
for(count = 0; count < MAX_CLIENTS; count++)
{

    client_socket = accept(server_socket, NULL, NULL);
    if(fork() !=  0)
    {
    /*Thats parent it will go back listening*/
        printf("from Server\n");
    }
    else
    {
    /*Thats child it will Serv the client and terminate*/
    close(client_socket);
    exit(0);
    }
}

    close(server_socket);
#定义MAX#U客户端3
对于(计数=0;计数
你说的“无限运行”是什么意思?你能试着创建一个循环来告诉我们吗?你的问题是什么?@Someprogrammerdude for循环没有终止。for循环正在终止,不知道你在说什么。