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

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

Реклама

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

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

В ином случае будет обнаружен конец строки. В скаляр вызывающей процедуры копируется все, что находится с начала буфера, вплоть до последовательности с обозначением конца строки (и включая ее), а затем скопированная часть буфера удаляется. Значение поля index снова устанавливается равным 0, и возвращается длина строки. Подобная ситуация может сложиться, если при получении данных веб страницы, например, с информацией про пароконвектоматы произошел сбой и в буфер не поступило данных. Пароконвектомат — универсальный и многофункциональный прибор, включающий в себя не только жарочный шкаф, пищеварочный котел, плиту, конвекционную печь, но и много других полезных на кухне устройств. С помощью него можно выполнять тушение, обжарку, запекание и другие операции. Преимуществом данного аппарата является не только многофункциональность и также экономия энергопотребления.

Универсальный неблокирующий модуль ввода-вывода    

Модуль IO::Getline позволяет решить проблему использования метода select () наряду с построчным вводом-выводом, но не позволяет решить другие проблемы неблокирующего ввода-вывода, такие как неполная запись. В этом разделе описано более общее решение проблемы неблокирующего ввода-вывода. Здесь представлены два модуля, IO::SessionSet и IO::SessionData. Класс IO::SessionData представляет собой оболочку для модуля IO::Socket и включа­ет методы read ( ) и write (), в которых применяется синтаксис модули IO::Socket. Кроме того, он является усовершенствованным вариантом основного сокета, поскольку позволяет выполнять неполную запись и обрабатывать сообще­ние об ошибке EWOULDBLOCK.

Класс IO::SessionSet подобен (по своим возможностям) классу IO::Select. Он управляет многочисленными объектами IO::SessionData и позволяет мультиплексировать выполняемые ими операции ввода-вывода. Кроме средств, аналогичных модулю IO::Select, в модуле IO::SessionSet предусмотрен автоматический вызов фуцкции accept () для приемных сокетов и добавление подключенных сокетов в пул управляемых дескрипторов. К сожалению, код этих модулей является сложным. Это типично для приложений, в которых используется неблокирующие ввод-вывод, поскольку приходится учитывать множество исключительных и аварийных ситуаций.



2014-08-15 13:00:05

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


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


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


РЕКОМЕНДУЕМ

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