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

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

Реклама

Perl для IP-Телефонии (18 – Адресация сокета, часть 10)

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

Функция sockaddr_in при вызове в скалярном контексте принимает в качестве параметров номер порта и двоичный IP-адрес и упаковывает эти два значения в адрес сокета, пригодный для использования функцией sockets. При вызове в контексте списка функция sockaddr in () вы­полняет противоположное действие, преобразуя адрес сокета в номер порта и IP-адрес. IР-адрес должен быть дополнительно обработан функцией inet_ntoa() для получения строки, предназна­ченной для восприятия человеком.

$ socket_addr = pack_sockaddr_in( $port, $address);

($port ,$address) = unpack_sockaddr_in( $socket_addr);

Если вам не нравится сложный способ применения функции sockaddr_in(), вы можете ис­пользовать эти две функции для упаковки и распаковки адресов сокетов в форме, не зависящей от контекста. Иногда в литературе адрес сокета называют его “именем”. Такой термин не следует применять. Адрес сокета и его имя — это одно и то же.

Простой сетевой клиент. Для включения изложенной информации в связный контекст рассмотрим пример клиента службы времени. Эта служба, которая работает на многих хостах UNIX, принимает входящие запросы на создание соединения в порту TCP номер и обнаружив такой запрос, она выводит единственную строку текста со значением текущей даты и времени.

Этот сценарий получает из командной строки IP-адрес сервера службы времени в виде четырех чисел, разделенных точками. При выполнении сценария с адресом 128.252.120.8, который представляет собой IP-адрес архива программного обеспечения, будет получен примерно такой результат:

% daytime_cli.pl 143.48.7.1

Mon Jul 10 11:59:13 2013

Код клиента службы времени приведен и листинге ниже.

#!/usr/local/bin/perl
# Файл: ip^trans.pi
use Socket;
while (<>) {
chomp;
my $packed_address = gethostbyname($_) ;
            unless ($packed_address)        {
            print     "$_       =>       ?n";
            next;
            my $dotted_quad = inet_ntoa($packed_address);
            print "$_ => $dotted_quadnn";
            }

2013-10-14 19:50:00

это интересно
В современном мире средства связи для нас стали не только необходимостью, но и постоянными нашими спутниками, решающие наши проблемы различными приложениями. Купив ipad 5 в Москве по невысокими ценам, мы приобретаем гаджет с огромными возможностями и функциями. И в любой ситуации мы всегда можем положиться на нашего цифрового друга.

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


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


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


РЕКОМЕНДУЕМ

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