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

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

Реклама

Perl для IP-Телефонии (35 – Мультиплексные приложения, часть 17)

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

Недостатки данной версии психотерапевтического сервера.

Вы можете вызвать на выполнение эту версию сервера, подключиться к нему через telnet (или воспользоваться одним из клиентов gab, разработанных в этой или предыдущих разделах) и провести приятную беседу. Оставив открытым один сеанс, им можете открыть несколько новых и убедиться в том, что все они правильно поддерживают диалог.

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

Поскольку мы должны избегать использования оператора <>, очевидное решение состоит в написании собственной процедуры readline (). После вызова этот процесс должен буферизовать вызовы функции sysread (), возвращая только часть буфера, вплоть до первого обозначения конца строки. Если конец строки не будет сразу обнаружен, процедура readline () должна вызвать функцию sysread () столько сколько потребуется.



2014-07-20 13:18:26

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


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


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


РЕКОМЕНДУЕМ

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