TCP Preforked Server无法正常运行,preforked(进程版本)TCP服务器的实现无法正常运行

时间:2019-01-06 13:59:48

标签: c tcp server preforking

我目前正在处理一个分配,该分配必须与服务器同时至少连接16个客户端(它必须是TCP预制服务器),我现在面临的问题是,在预读读取功能之前没有工作正常,下面是代码示例,谢谢!!

char buf[BUFLEN];

void treat_request(int newfd);

void treat_request(int newfd){
   bzero(buf,BUFLEN);
   int n = read(newfd,buf,BUFLEN);
   if(n < 0) printf("Something went wrong");
   if(n > 0) printf("All OK");
   if(buf[0] == REQUEST_T) printf("GOT IT");
}

int main (int argc, char ** argv){
   int sockfd, newfd, len;

   struct  sockaddr_in serv_addr, cli_addr;

   sockfd = socket(AF_INET, SOCK_STREAM, 0);

   bzero((char *) &serv_addr, sizeof(serv_addr));

   serv_addr.sin_family = AF_INET;
   serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
   serv_addr.sin_port = htons(atoi(argv[1]));

   bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

   listen(sockfd,5);
   len = sizeof(cli_addr);
   for(int i = 0 ; i < NB_PROC;i++){
    if(fork() == 0){
       while(1){
        newfd = accept(sockfd, (struct sockaddr *) &cli_addr, &len);
        treat_request(newfd);
        close(newfd);
       }
    }
   }

   while(1) pause();

}

0 个答案:

没有答案