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

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

Реклама

Perl для IP-Телефонии (41 – Срочные данные TCP, часть 20)

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

Однако на этот раз обработчик urg устанавливает также локальную переменную $abort равной истинному значению. В цикле вызывается метод pretty_text () объекта Text::Travesty для генерации вплоть до 500 слов, символы обо­значения конца строки заменяются последовательностью crlf и выполняется запись полученно­го текста. В конце цикла передается строка, состоящая из одной точки.

Если передача была прервана аварийно, необходимо сообщить клиенту, чтобы он отбросил данные, оставшиеся в потоке сокета. Это действие выполняется путем отправки клиенту байта срочных данных с использованием следующей общей схемы.

if ($abort) {

warn "make_travesty() abortedn" if DEBUG;

$gl->send('!',MSG_OOB);

}}

Снова отметим, что метод send() передается модулем IO::Getline основополагающему объекту IO:: Socket.

Строки 89-93. Подпрограмма reset_travesty(). Эта подпрограмма вызывает метод reset () объекта Text::Travesty и передает сообщение с подтверждением, что таблица частоты слов была очищена.

Строки 94-108. Обработчик сигнала do_urgent (). Обработчик сигнала do_urgent () отве­чает за очистку внутреннего буфера чтения при получении байта срочных данных. Выполняет­ся выборка сокета из глобального объекта Ю::Getline и вызов функции sysread() в не­прерываемом цикле до тех пор, пока метод atmark () сокета не вернет истинное значение. В результате будут отброшены все данные, вплоть до байта срочных данных.

Затем вызывается функция recv () для чтения самих срочных данных. В этом приложении со­держимое срочных данных не имеет особого значения, поэтому оно игнорируется. После этого производится очистка всех оставшихся данных во внутреннем буфере объекта IO::Getline путем вызова его метода flush ().

2015-02-11 11:58:18

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


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


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


РЕКОМЕНДУЕМ

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