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

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

Реклама

Perl для IP-Телефонии (22 – IO::Socket, часть 26)

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

А что если изменить строку, в которой выполняется чтение с сервера, примерно так:

while ($from_server = <$socket>) {

chomp $from_server; .

print $from_server,"n";

}

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

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

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

В системах UNIX и Windows эту задачу проще всего решить с использованием команды fork() для создания двух копий сценария. Родительский процесс будет отвечать за копирование данных со стандартного устройства ввода на удаленный хост, а дочерний процесс — за обработку потока данных в другом направлении. К сожалению пользователи Macintosh не имеют доступа к этому системному вызову. Качественное, но немного более сложное решение, которое позволяет обойтись без вызова fork (), будет описываться далее в разделе “Мультиплексные приложения”.



2013-11-17 22:02:54

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


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


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


РЕКОМЕНДУЕМ

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