Функция sockaddr_in при вызове в скалярном контексте принимает в качестве параметров номер порта и двоичный IP-адрес и упаковывает эти два значения в адрес сокета, пригодный для использования функцией sockets. При вызове в контексте списка функция sockaddr in () выполняет противоположное действие, преобразуя адрес сокета в номер порта и IP-адрес. IР-адрес должен быть дополнительно обработан функцией inet_ntoa() для получения строки, предназначенной для восприятия человеком.
Если вам не нравится сложный способ применения функции 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 в Москве по невысокими ценам, мы приобретаем гаджет с огромными возможностями и функциями. И в любой ситуации мы всегда можем положиться на нашего цифрового друга.