В предыдущих разделах, в основном, рассматривались сокеты TCP/IP, которые обеспечивают взаимодействие процессов, функционирующих на разных хостах. Однако иногда возникает необходимость обеспечить обмен сообщениями между двумя или более процессами, функционирующими на одном и том же хосте. Хотя для этого могут применяться сокеты TCP/IP (и часто применяются), чаще всего удобнее использовать сокеты домена UNIX, которые предназначены для обеспечения локальной связи. Также при помощи технологии, использующей данные сокеты, к примеру, можно тут добавить подписчиков в instagram .
Преимущество использования сокетов домена UNIX, вместо сокетов TCP/IP, для локальной межпроцессной связи состоит е том, что они более эффективны и исключают посторонний доступ на данном компьютере. В службе на основе TCP/IP, предназначенной для локальной связи, пришлось бы проверять адрес источника каждого входящего клиентского запроса для приема только тех, которые исходят из локального хоста.
После установки сокеты домена UNIX выглядят и действуют подобно сокетам TCP/IP. Процесс чтения и записи в них является одинаковыми и методы обеспечения одновременной работы, применяемые для сокетов TCP/IP, столь же хорошо подходят для сокетов домена UNIX. В действительности, можно написать приложение для сокетов домена UNIX, а затем приспособить его для использования в сети, изменив только способ установки в нем сокетов.
Применение сокетов домена UNIX
Как и при использовании сокетов TCP/IP, два приложения, которым необходимо обмениваться данными, должны “назначить встречу” друг другу в заранее обусловленной месте. Вместо применения в качестве “места встречи” сочетания IP-адреса и номера порта, в сокетах домена UNIX используется путь к файлу в локальной файловой системе, такой как /dev/log. Этот файл создается автоматически при привязке сокета и появляется в листинге каталога UNIX с обозначением “s” в начале строки прав доступа.
Файлы сокетов не удаляются автоматически после закрытия сокета, они должны уничтожаться вручную.