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

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

Реклама

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

предыдущая часть ««»» следующая часть
мини наушник

Эта клиентская программа получила имя gabl.pl, поскольку она является первой из ряда таких клиентов. Пример простой, но неправильной реализации клиента gab


0:         #!/usr/bin/perl
1:         # Файл: gabl.pl
2:         # Предупреждение: Это - неработоспособный сценарий
3:         use Strict;
4:         use IO::Socket qw(:DEFAULT :crlf);
5:         my       $host = shift or die "Usage: gabl.pl host [port]n";
6:         my       $port = shift  'echo';
7:         my       $socket = IO::Socket::INET->new(PeerAddr=>$host, PeerPort => $port)
8:         or         die "Can't connect: $!";
9:         my       ($from_server, $from_user) ;
10:       LOOP:
11:       while (i) {
12:       {          # Ограничить область действия переменной       $/
13:       local $/ - CRLF;
14:       last LOOP unless $from_server = <$socket>;
15:       chomp $from_server;
16:       }
17:       print $from_server, "n";
18:       last unless $from_user = <>;
19:       chomp ($from_user) ;
20:       print $socket $from_user,CRLF;
21: }

Проведем анализ программы. 

Строки 1-6. Инициализация модуля. Как и прежде, выполняется загрузка модуля IO::Socket и выборка требуемого имени удаленного хоста и номера порта из параметров командной строки.

Строки 7,8. Создание сокета. С помощью метода IO::Socket:: INET->new () создается сокет, а в случае неудачного завершения вызывается функция die с сообщением об ошибке.

Строки 9-21. Вход в главный цикл. Программа входит в цикл. При каждом проходе по циклу считывается одна строка из сокета и выводится в стандартное устройство вывода. Затем счи­тывается строка, введенная пользователем, и выводится в сокет.

Поскольку удаленный сервер для обозначения конца каждой строки использует пары символов. crlf, а пользователь выводит обычные символы конца строки, приходится постоянно устанавливать и переустанавливать значение переменной $/.



2013-11-17 21:49:04

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


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


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


РЕКОМЕНДУЕМ

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