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

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

Реклама

Perl для IP-Телефонии (22 – IO::Socket, часть 16)

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

Проведем анализ программы, приведенную в прошлой части.

Строки 1-7. Инициализация сценария. Включена строгая проверка синтаксиса и загружен мо­дуль IO::Socket. Импортируются константы, применяемые по умолчанию, и константы, которые служат для обозначения новой строки, путем импортирования тегов :default и :crlf. Локальный порт определяется как константа, и инициализируются счетчики байтов для накоп­ления статистических данных. Устанавливается также значение глобальной переменной $/, равное crlf, в соответствии с соглашением, принятым в сети.

Строки 8,9. Установка обработчика сигнала INT. Устанавливается обработчик сигнала int для обеспечения корректного останова сервера при нажатии пользователем клавиши прерывания. Улучшенный обработчик просто устанавливает флажок $quit равным истинному значению. 

 Строки 10-15. Создание объекта сокета. Номер порта устанавливается из командной строки, а если он не указан, по умолчанию принимается жестко закодированная константа. После это­го выполняется вызов метода IO::Socket::lNET->new() с параметрами, которые определяют создание приемного сокета, привязанного к указанному локальному порту. Другие параметры устанавливают опцию so_reuseaddr равной истинному значению и определяют тайм­аут 1 час (60*60 с) для операции accept().

Когда параметр Timeout установлен, каждый последующий вызов метода accept() будет возвращать значение undef, если в течение времени, указанного этим параметром, не было получено ни одного входящего запроса на установление соединения.

Однако в данной программе это средство применяется не ради его самого, а в связи с тем, что оно изменяет поведение метода accept(), исключая возможность автоматического переза­пуска после прерывания сигналом. Это позволяет прервать работу сервера с помощью комби­нации клавиш , не вкладывая сам вызов accept() в блок eval {}.



2013-11-14 16:46:38

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


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


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


РЕКОМЕНДУЕМ

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