UNIX(网络编程-TCP):02---并发服务器模型之fork、exec

一、frok与exec

二、并发服务器

  • 演示案例
pid_t pid;
int listenFd,connFd;

listenFd=socket(...);
bind(listenFd,...);
listen(listenFd,...);

for(;;){
    connFd=accept(listenFd,....);
    if((pid=fork)==0)
    {
        close(listenFd);
        doit(connFd);
        close(connFd);
        exit(0);
    }
    close(connFd);
}
  • 因为父进程的文件描述符会传递给子进程,所以父进程将任务交给子进程之后,父进程就关闭原先的connFd
  • 另外,子进程不需要accept,所以关闭listenFd。子进程的close(connFd)可以不用写,因为exit(0)退出时会自动关闭所有的文件描述符,不过最好显示关闭(便于理解)

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/89532346