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

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

Реклама

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

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

Вызывается функция getprotobyname() для выборки номера протокола IP, применяемого в функциях setsockopt() и getsockopt(). Если номер протокола по каким-то причинам не мог быть получен, он устанавливается по умолчанию равным 0. Таково обычное значение применяемое для константы с номером протокола.

Строки 13-22. Методы new() и configure(). Данные методы модуля перекрываются с тем, чтобы протокол UDP применялся по умолчанию, если параметр явно не задан.

Строки 23-29. Метод mcast_add(). Этот метод в качестве параметров принимает сокет, адрес группы многоадресной рассылки, к примеру, про новости форекс и необязательный параметр с указанием локального интерфейса. Если интерфейс указан, метод вызывает внутреннюю функцию get_if_addr (), которая обеспечивает применение альтернативных способов указания интерфейса. Если интерфейс не указан, то функция get_if__addr () возвращает значение “0.0.0.0”, которое представляет собой безразличный адрес inaddr_any в виде четырех чисел, разделенных точками.

Затем создается структура ip_mreq путем объединения двоичных представлений адреса группы и локального IP-адреса, и эта структура передается методу setsockopt () с уровнем сокета $ip_level и командой ip_add_membership.

Строки 30-36. Метод mcast_drop (). Этот метод содержит тот же код, что и метод mcast_add (), за исключением того, что в самом конце в нем вызывается метод setsockopt () с командой ip_drop_membership.

Строки 37-47. Метод mcast_if (). Этот метод позволяет присвоить или определить интер фейс для исходящих многоадресных сообщений. Если в вызывающей процедуре указан ин­терфейс, он преобразуется в адрес путем вызова функции get_if_addr (), затем этот адрес превращается в упакованную двоичную версию с использованием функции inet__aton() и вызывается метод setsockopt () с командой ip_multiсast_if.

Для выборки значения интерфейса применяется более сложный метод в связи с ошибкой в коде операционной системы Linux, в результате которой метод getsockopt () возвращает 12-байтовую структуру, а не ожидаемый 4-байтовый упакованный IP-адрес интер­фейса (обнаружено это, изучая исходный код ядра).

2015-09-12 15:33:17

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


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


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


РЕКОМЕНДУЕМ

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