C 在套接字中使用fork()调用后服务器未退出
在添加fork()之前,下面的代码运行良好,但在调用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
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循环正在终止,不知道你在说什么。