Функции, которые должны возвращать адреса сокетов, такие как getpeername (), getsockharhe () и recv (), при использовании с сокетами домена UNIX возвращают упакованные адреса домена UNIX. Эти адреса должны быть распакованы с помощью функции sockaddr_un () или unpасk_sосkaddr_un () для выборки полного имени файла, предназначенного для восприятия человеком. Таким образом это можно использовать в приложениях VoIP, к примеру для связки программного обеспечения и продукции IP-Телефонии http://gold-telecom.ru/ .
Следует учитывать, что некоторые версии Perl содержат программную ошибку в процедурах, которые возвращают имена сокетов. В подобных версиях вызовы версий функций sockaddr_un () и unpack_sockaddr_uri (): для работы с массивами завершаются неудачей. Это не так уж страшно, поскольку в приложениях для работы с сокетами домена UNIX не приходится обращаться к этой информации так же часто, как в приложениях TCP/IP. Однако если нужно получить в программе полное имя локального или удаленного сокета, эту программную ошибку Perl можно обойти, применив функцию unpack () с форматом “x2z” к значению, возвращенному функцией getpeername () или getsockname ().
$path = unpack "х2 z", getpeername(S);
Кроме того, в сокете домена UNIX, созданном клиентом, можно вызвать функцию connect () без вызова функции bind (), так же как и при работе с сокетом TCP/IP. В этом случае система создает невидимую оконечную точку связи и функция getsockname () возвращает полное имя, которое имеет длину, равную 0. Это подобно использованию в операционной системе временных портов для исходящих соединений TCP/IP.
Объектно-ориентированный интерфейс к сокетам домена UNIX
Объектно-ориентированный интерфейс к сокетам домена UNIX предоставляет стандартный модуль IO::Sосket. Достаточно, просто создать объект и использовать его наравне с объектом IO::Socket, предназначенным для работы по протоколу TCP/IP. Основные изменения, по сравнению с модулем IО:Socket::INET, заключаются в использовании конструктора объекта new (), который принимает другой набор ключевых параметров. В модуле IO::Socket::UNIX добавлены новые методы hostpath () и peerpath () (описанные ниже) и не поддерживаются методы, связанные с использованием протокола TCP/IP, такие как sockaddr(), sockport () , sockhost(), peeraddr() или peerport().