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

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

Реклама

Perl для IP-Телефонии (21 – Протокол TCP, часть 3)

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

Функции сокета, относящиеся к исходящим соединениям.

Теперь рассмотрим более подробно функции, связанные с созданием сокетов и установлением исходящих соединений TCP.

$boolean = socket(SOCKET,$domain,$type,$prоtocol)

Функция socket() принимает в качестве параметров имя дескриптора файла, домен, тип и протокол, создает новый сокет и связывает его с указанным дескриптором файла. При успешном выполнении эта функция возвращает истинное значение. В случае ошибки она возвращает значение undef и оставляет сообщение об ошибке в переменной $!. Параметры с обозначением домена, ти­па и протокола представляют собой небольшие целые числа. Для первых двух параметров значениями могут быть константы, которые определены в модуле socket, но числовое значение протоко­ла необходимо определить во время выполнения, вызвав функцию getprotobyname(). Для соединения сокетов TCP обычно применяется следующий формат.

socket (SOCK,AF_INET, SOCK_STREAM, scalar getprotobyname('tcp'))

Здесь функция getprotobyname() принудительно была переведена в скалярный контекст для возврата единственного результата, содержащего номер протокола.

$boolean = connect(SOCK, $dest_addr)

Функция connect() предпринимает попытку открыть сокет и установить логическое соединение с внешним адресом назначения. Сокет уже должен быть создан с помощью функции socket(), а упакованный адрес назначения — сформирован функцией sockaddr_in() или равнозначной ей функцией.

Система автоматически выберет временный порт для использования в качестве локального адреса сокета. При успешном выполнении функция connect() возвращает истинное значение. В ином случае возвращает ложное значение и устанавливает переменную $!, равную коду системной ошибки с описанием проблемы. Для сокета с установлением логического соединения нельзя вызывать connect() более одного раза; если будет предпринята еще одна попытка вызова, возникнет ошибка EISCONK ('Transport  endpoint is already connected' — Оконечная точка транспортного протокола уже подключена).



2013-10-21 12:50:58

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


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


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


РЕКОМЕНДУЕМ

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