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

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

Реклама

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

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

Для установки значения этой опции применяется упакованный IP-адрес интерфейса, созданный с помощью функции inefc_aton (). Если интерфейс явно не установлен, операционная система сама выбирает подходящее значение.

В операционной системе Linux при использовании функции getsockopt () для выборки значения опции IP_MULTIСASТ_IF нужно знать небольшой “секрет”. Эта операционная система в качестве параметра функции setsockopt () принимает упакованный 4-байтовый адрес интерфейса, но возвращает 12-байтовую структуру ip_mreqn, полученную в результате вызова функции getsockopt () (описание соответствующей ей структуры ip_mreq приведено ниже). Это недокументированное правило представляет собой программную ошибку, которая должна быть исправлена в ядре версии 2.4 или последующих версиях. Эта особенность функции учтена в модуле IO::Multicast, который описан в следующем разделе.

В отличие от тех опций сокета, которые мы до сих пор рассматривали, опции многоадресной рассылки, к примеру, с информацией про ремонт htc one m7 применяются не к уровню сокета стека протоколом, SOL_SOCKET, а к уровню IP-протокола (который отвечает за маршрутизацию пакетов и выполнение других функций, касающихся IP-адресов). Функциям getsockopt() и setsockopt () должен быть также передан номер протокола для уровня IP, который может быть выбран путем вызова функции getprotobyname () с использовани­ем IP * в качестве имени протокола. В следующем примере показано, как отключить опцию возврата пакетов на локальный хост для сокета $sock.

mу $ip_level = getprotobyname(IP) or die "Can't get protocol: $!";

setsockopt($sock,$ip_level,IP_MULTICAST_LQOPBACK,0);

Поскольку метод IO::Socket->sockopt() предназначен для работы на уровне SOL_SOCKET, он не может применяться для опций многоадресной рассылки. Однако могут использоваться методы setsockopt () и getsockopt () модуля IO::Socket, которые представляют собой тонкие оболочки для вызовов основополагающих функций Perl.

Константы опций многоадресной рассылки определены в системном файле заголовка netinet/in.h. Чтобы получить доступ к соответствующим значениям операционной системы, необходимо преобразовать системные файлы заголовков с помощью инструментального средства h2ph.



2015-08-31 16:05:51

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


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


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


РЕКОМЕНДУЕМ

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