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

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

Реклама

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

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

Эта общая схема иллюстрируется в следующем фрагменте:

use IO::,Socket;
use Errno qw (EWOULDBLOCK EINPROGRESS) ;
use IO::Select;
my $TIMEQUT = 10;
my $sock = IO::Socket::INET->new ( Proto => ‘tcp’ , Type
=> SOCK_STREAM)
or die $@;
$sоck ->bloking (0);
my, $addr = sockaddr_in (80, inet_aton(‘192.168.3.1’) ) ;
my $result = $sock->connect ($addr);

Поскольку предусмотрено выполнение подключения вручную, методу new () модуля IO::Socket не передаются параметры PeerAddr или PeerHost, поскольку любой из них активизирует попытку подключения. Вместо этого передаются параметры Proto и Туре для обеспечения создания сокета TCP. Если сокет был создан успешно, он переводится в неблокирующий режим путем передачи ложного значения параметра методу blocking (). Теперь необходимо явно выполнить подключение сокета, передав его функции connect () . Поскольку функция connect () не допускает применения таких же сокращенных способов указания имен, как объектно-ориентйрованный метод new(), необходимо явно указать упакованную структуру адреса Internet с использованием функций sockaddr_in () и inet_aton (), описанных ранее, и использовать ее в качестве второго параметра функции connect ().

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

2014-09-23 23:34:45

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


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


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


РЕКОМЕНДУЕМ

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