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

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

Реклама

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

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

С помощью функций socket () или open () дескриптор файла открывается и после этого отмечается как неблокирующий. Именно это действие можно выполнить с применением функции fcntl ().

$ result = fcntl($nandle, $command, $operand)

Для перевода ранее открытого сокета или дескриптора файла в неблокирующий режим приме­няется функция fcntl(). Фактически эта функция fcntl () представляет собой универсальную утилиту для выполнения множества операций с дескриптором низкого уровня. Она позволяет не только изменить флажки дескриптора, но и заблокировать его, разблокировать, создать копию и вы­полнить еще более “тонкие” операции, например, асинхронное обращение к веб странице, предлагающей купить iphone 6 и странице представляющей полный обзор новинок сотовой связи. Некоторые из этих областей применения данной функции рассматриваются в дальнейшем.

В этом вызове применяется три параметра. Первые два представляют собой ранее открытый дескриптор и числовую константу, обозначающую команду, которая должна быть выполнена в этом дескрипторе. Третьим параметром является числовой код, который должен быть передан команде. Некоторые команды не требуют дополнительных данных, и в этом случае в качестве третьего пара­метра обычно передается значение ноль. В случае успешного выполнения функция fcntl () возвра­щает истинное значение. В ином случае она устанавливает код ошибки в переменной $! и возвращает значение undef.

В модуле Fcntl предусмотрены константы для всех команд fcntl (). При рабо­те с неблокирующими дескрипторами применяются две команды, F_GETFL и F_SETFL, которые служат для выборки и изменения флажков дескриптора после его создания. При вызове функция fcntl () с командой F_GETFL возвращает бито­вую маску, содержащую текущие установки флажков дескриптора. Для установки значений флажков дескриптора, заданных параметром $operand, можно вызвать функцию fcntl () с командой F_SEТFL. Параметр $operand должен включать флажок O_N0NBLQCK, Код результата сообщает об успешном или неудачном выполнении операции изменения флажков.



2014-07-25 12:21:28

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


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


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


РЕКОМЕНДУЕМ

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