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

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

Реклама

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

предыдущая часть ««»» следующая часть
Функциональное тестирование программ

Эти операции реализованы таким образом, что чтение никогда не блокируется, и это исключает вероятность того, что медленный сервер задержит выполнение всех остальных операций.

Вызов метода read () возвращает истинное значение, если было успешно выполнено чтение из сокета, или ложное значение, если возникла ошибка чтения или достигнут конец файла. В последнем случае работа с сокетом закончена, поэтому он удаляется из набора $readers и хеша % connections.

Строка 31. Завершающие действия. Выполнение цикла заканчивается, если в наборах $readers или $writers не осталось больше ни одного дескриптора. Это проверяется путем вызова методов count () соответствующих объектов IO::Select.

Теперь рассмотрим модуль HTTPFetch, в котором реализована, основная часть функциональных средств этой программы.

Строки 1-7. Загрузка модулей. Выполнение кода модуля начинается с вызова модулей IO::Socket, IO::File и Carp. Импортируется также константа einprogress из модуля Errno и выполняется загрузка модулей File::Path и File::Basename. Эти модули импор­тируют функции mkpath () и dirname (), которые применяются для создания пути доступе к локальной копии загруженного файла.

Строки 8-31. Конструктор new(). Метод new() создает объект HTTPFetch. Его единственным параметром является URL, по которому должна быть выполнена выборка информации. Выполнение метода начинается с интерпретации URL и выделения частей с указанием хоста, порта и пути, для чего применяется внутренняя процедура parse_url(). Если интерпретация URL не может быть выполнена, то вызывается внутренний метод error (), который отправля­ет сообщение об ошибке в дескриптор stderr и возвращает значение undef .



2014-10-05 13:18:50

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


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


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


РЕКОМЕНДУЕМ

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