Лабораторная работа №2.
Параллельный эхо-сервер.
...
pid_t pid;
int listenfd, connfd;
listenfd = socket( ... );
bind(listenfd, ... );
listen(listenfd, LISTENQ);
for (;;) {
connfd = accept(listenfd, ...); // подключение клиента, получение присоединенного сокета
if ((pid = fork() == 0) {
close(listenfd); /* дочерний процесс закрывает прослушиваемый сокет */
doit(connfd); /* обработка запроса на присоединенном сокете */
close(connfd); /* с этим клиентом закончено */
exit(0); /* дочерний процесс завершен */
}
close(connfd); /* родительский процесс закрывает присоединенный сокет */
}
...