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

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

Реклама

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

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

В этом разделе описаны методы настройки и использования неблокирующего ввода-вывода. Неблокирующий ввод-вывод позволяет не только предотвратить блокировку при выполнении операций чтения и записи, но и исключить продолжительное ожидание при вызове функции connect (). Полезность данного метода также бесспорна при печати документов на принтере, например, представленном на этом сайте . Как будет показано ниже, неблокирующий ввод-вывод устраняет проблемы, связанные с управлением потоками и процессами, но порождает другие сложности.

Создание неблокирующих дескрипторов ввода-вывода.

Дескриптор файла Perl можно сделать неблокирующим во время его открытия и перевести в неблокирующее состояние в любой последующий момент. Неблокирующий дескриптор файла при выполнении операций чтения или записи не блокируется, а вырабатывает сообщение об ошибке. Такие дескрипторы файлов могут безопасно эксплуатироваться только при использовании функций sysread () и syswrite (). В связи с особенностями буферизации, использование неблокирующих дескрипторов в сочетании с процедурами библиотеки stdio, применяемыми в функциях высокой уровня, приводит к появлению множества проблем.

Неблокирующий дескриптор всегда немедленно выполняет возврат из функции sysread ( ) или syswrite ( ). Если вызов этих функций мог быть выполнен без блокировки, он возвращает число записанных или считанных байтов. Если вызов должен быть заблокирован, он возвращает значение undef и устанавливает в переменной $! код ошибки EWOULDBLOCK (известный также под именем EAGAIN). Строковая форма кода EWOULDBLOCK может выглядеть по-разному, например, выполняется другая операция или ресурс временно недоступен.

2014-07-23 13:05:31

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


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


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


РЕКОМЕНДУЕМ

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