Функция pack_sockaddr_un () упаковывает полное имя файла в адрес домена UNIX, независимо от контекста массива или скалярного контекста.
$path = unpack__sockaddr_un ($packed_addr)
Функция unpack__sockaddr_un () преобразовывает упакованный адрес сокета домена UNIX в полное имя файла, независимо от контекста массива или скалярного контекста.
Серверы должны выполнять привязку к адресу домена UNIX путем вызова функции bind () с желаемым адресом встречи.
В случае успешного выполнения функция bind () возвращает истинное значение. Ниже перечислены возможные причины неудачного завершения.
EADDRINUSE (“address already in use” — адрес уже используется). Такой адрес уже существует как обычный файл, обычный каталог или сокет, созданный в предыдущем вызове того же сценария. Серверы домена UNIX должны уничтожать файл сокета перед завершением работы.
EACCES (“permission denied”— доступ запрещен). Права доступа исключают для текущего процесса возможность создать файл сокета в указанном месте. Те же правила, которые регламентируют создание файла для записи, распространяются и на сокеты домена UNIX. В системах UNIX непривилегированные сценарии часто выбирают для размещения файлов сокетов каталог /tmp.
ENOTDIR (“not a directory” — не каталог). Выбранное полное имя включает компонент, который не является допустимым именем каталога. Подобные ошибки возникают также, если выбранное полное имя файла не является локальным. Например, запрещено использовать адреса сокетов, находящиеся в файловых системах, допускающих только чтение или смонтированных в сети.
После создания и инициализации сокет домена UNIX может использоваться как обычный сокет TCP/IP. Программы могут вызывать функции read (), sysread (), print () или syswrite() для взаимодействия в потоковом режиме или функции send () и recv () — для использования API-интерфейса, ориентированного на работу с сообщениями. Серверы могут принимать новые входящие запросы на установление соединений с помощью функций listen () и accept ().