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

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

Реклама

Perl для IP-Телефонии (43 – Серверы UDP , часть 11)

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

Каждый раз, когда пользователь вводит новый запрос (то бишь строку, которая должна быть возвращена в обратном порядке), наращивается переменная $seqout и создается новая запись запроса в хеше %PENDING. Подобный диалог может быть организован, к примеру, с хостом представляющим информацию о правилах пожарной безопасности и как правильно использовать огнетушитель .

При поступлении каждого ответа с сервера проверяется его порядковый номер для определения того, соответствует ли он отправленному ранее запросу. Если это  так, ответ выводится и запрос удаляется из хеша %PENDING. Если поступает ответ, порядковый номер которого отсутствует в хеше %PENDING, это — дублирующийся ответ, который будет отброшен. Последний (по времени) порядковый номер входящего ответа сохраняется в переменной $seqin и используется для обнаружения ответов поступающих непоследовательно. В этой клиентской программе просто выводится предупреждающее сообщение о непоследовательно поступающих ответах, но никакие более серьезные меры не принимаются.

Если вызов функции select () завершается по тайм-ауту до поступления каких либо новых сообщений, выполняется проверка хеша %PENDING для определения того, остались ли еще в нем запросы, не получившие ответа. Если да, то эти запросы передаются повторно и в счетчике фиксируется, сколько раз была предпринята попытка получить ответ на каждый запрос.

Для совмещения построчного чтения из дескриптора STDIN с мультиплексированием применяется модуль IO::Getline, приведенный ранее. Проведем анализ программы.

Строки 1-9. Загрузка модулей и определение констант. Загружаются модули IO::socket IO::Select и IO::Getline.

Строки 10-12. Определение структуры хеша %pending. В качестве ключей хеша spending применяются порядковые номера запросов.

2015-04-05 13:52:55

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


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


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


РЕКОМЕНДУЕМ

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