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

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

Реклама

Perl для IP-Телефонии (36 – Неблокирующий ввод-вывод, часть 41)

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

Если обнаружены объекты сеансов с полными строками, допускающими чтение, то метод wait () их немедленно возвращает. В ином случае он обращается к унаследованной версии метода wait () (вызывая метод своего суперкласса SUPER::wait ()), который проверяет с помощью метода select () наличие потока данных, готовых для чтения, во всех дескрипторах файлов низкого уровня.


Применение модуля IO::SessionSet дескрипторами файлов, отличными от сокетов.

В заключение рассматривается последнее приложение модуля IO::SessionSet неблокирующая версия клиента gab. Этот клиент работает аналогично клиентам описанным ранее, но в нем для чередования операций ввода-вывода применяются мультипроцессные или многопоточные методы.

В этом клиентском сценарии показано, как работать с однонаправленными дескрипторами, такими как STDIN и STDOUT, и как использовать подпрограмму обратного вызова choke () для предотвращения возможности беспредельного роста внутреннего буфера записи. Проведем анализ программы.

Строки 1-8. Инициализация сценария и обработка параметров командной строки. Выполнение сценария начинается с вызова соответствующих модулей. Для просмотра сообщений с кодом со­стояния, выдаваемых модулем IO::SessionSet в процессе его управления потоком данных, по­пробуйте установить переменную $IO::SessionSet::debug равной истинному значению.

Строки 9-13. Создание объектов IO::Socket и IO::SessionSet. Создается объект IO::Socket::INET, подключенный к указанному хосту и порту, и вызывается метод IO::SessionSet->new() для создания нового объекта SessionSet. В отличие от предыду­щих примеров, приемный сокет, который мог бы контролироваться с помощью объекта IO::SessionSet, отсутствует, поэтому методу new () не передаются параметры.



2014-09-21 03:08:23

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


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


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


РЕКОМЕНДУЕМ

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