Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (39 – предобработка мультипроцессов, часть 28)

предыдущая часть ««»» следующая часть
перевод с немецкого

Рассмотрим код адаптивного сервера с предварительным ветвлением, в котором для межпроцессной связи применяется канал.

Строки 1-8. Загрузка модулей. Загружаются стандартные модули IO::*, Fcntl, а также собственные модули Daemon и Web.

Строки 9-14. Определение констант. Определено несколько новых констант. Константы hi_water_mark и lo_water_mark, соответственно, устанавливают максимальное и мини­мальное число простаивающих серверных процессов. В данном примере для них специально выбраны небольшие значения, чтобы было проще следить за работой программы. Константа debug указывает, нужно ли выводить отладочную информацию.

Строки 15, 16. Объявление глобальных переменных. Установка флажка $done равным ис­тинному значению вызывает завершение работы сервера. Хеш % status содержит информа­цию о состоянии дочерних процессов. Как и в предыдущем примере, ключами этого хеша яв­ляются идентификаторы дочерних процессов, а значениями — информация состояния.

Строка 17. Обработчики прерываний. Устанавливается обработчик сигналов int и term, ко­торый присваивает флажку $done истинное значение, что приводит к завершению работы сервера. Напомним также, что модуль Daemon автоматически обрабатывает сигнал chld, уда­ляя информацию о завершившихся дочерних процессах из системных таблиц и сопровождая список идентификаторов дочерних процессов в глобальной переменной %children.

Строки 18-21. Создание сокета. Как и прежде, создается приемный сокет.

Строки 22-24. Создание канала. Создается однонаправленный канал с помощью функции pipe (), и дескриптор чтения сигнала read канала добавляется к набору IO::Select для использования в главном цикле. (Более подробно применение модуля IO:: Select будет описано ниже.)

2014-12-13 23:18:34

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония