Теория и практика программирования на Си в Unix

       

Суперсервер Internet


Суперсервер Internet (демон inetd) находит список серверов в файле /etc/inetd.conf и номера портов в файле /etc/services. Cуперсервер мультиплексирует запросы от клиентов посредством функции select (). Для каждой запрашиваемой услуги создается порожденный процесс, реализующий ее, в то время как суперсервер возвращается к select () для обработки следующего запроса (рис. 4.6.).

Рис. 4.6. Функционирование демона inetd (по [STEVENS 90])
Для того, чтобы добавить сервер, исполняемый посредством демона inetd, необходимо осуществить следующие операции:
- вывести из программы примитивы, реализованные в демоне inetd: socket (), bind (), listen (), accept (). Использовать операции считывания и записи с дескрипторами 0 и 1 (вместо сокет-дескриптора). Выйти из программы посредством exit () после завершения сервисной программы.
- составить конфигурацию сервисной программы в файлах /etc/services и /etc/inetd.conf;
- уничтожить демона inetd;
- вновь запустить демона inetd.



Содержание раздела