基本TCPソケット2−3
並行サーバー
並行サーバーの骨格
pid_t pid; int listenfd, connfd; listenfd = socket(...); bind(listenfd, ...); listen(listenfd, backlog); for (;;) { connfd = accept(listenfd, ...); if ( (pid = fork()) == 0 ) {//Child //子プロセスは、リスニングソケットをクローズ close(listenfd); //要求の処理 doit(connfd); //このクライアントの処理は終了 close(connfd); //子プロセスの終了 exit(0); } //Parent close(connfd);//親プロセスは接続済みソケットをクローズ }
参考文献