Различия между доменными сокетами Unix и сетевыми сокетами?

Я прав, что

  • Как реализовать «генераторы», такие как $ RANDOM?
  • Доступен ли источник UNIX System V?
  • Почему очереди сообщений не используются для приложений на системном уровне в ОС Ubuntu?
  • Почему MV (1) копирует объекты, если разрешение на перенос отклонено?
  • Является ли Linux Unix?
  • Как пассивно захватывать из сокетов домена Unix (мониторинг сокетов AF_UNIX)?
  • One Solution collect form web for “Различия между доменными сокетами Unix и сетевыми сокетами?”

    Вы смешиваете две вещи здесь.

    Сокет – это дескриптор файла – дескриптор – заданный программе, так что он может использовать сетевое соединение почти так же, как использует файлы. API сокета не зависит от протокола; сокеты могут быть созданы для соединений IPv4 или IPv6, но (с поддержкой ядра) также для таких вещей, как DECnet, AppleTalk или для чтения Ethernet.

    Так как API-интерфейс сокета довольно прост в использовании, но поскольку разговор с процессом на том же компьютере с использованием фактического сетевого протокола довольно неэффективен, в какой-то момент был создан сокет домена UNIX, позволяющий использовать API сокета без этой неэффективности. Он также добавляет некоторые дополнительные функции; например, можно передавать файловые дескрипторы в другой процесс через сокет домена UNIX.

    При использовании сокетов домена UNIX оба процесса по-прежнему содержат сокет, по одному для каждой стороны соединения. Использование сокета ничем не отличается от, скажем, сокетов IPv4, кроме начальной настройки соединения.

    Одна вещь, с которой API-интерфейс сокетов не может обойтись, – это адрес; невозможно создать сокет, не передавая ему адрес для разговора, и это не отличается для сокета домена UNIX. Так как это UNIX, где все файлы в любом случае, было решено сделать эти адреса похожими на имена файлов. И поскольку мы уже это делаем, имеет смысл сделать эти адреса в файловой системе, так как это позволяет легко их обнаружить.

    К сожалению, имя, данное этим файлам в файловой системе, также было «UNIX-доменным сокетом» (или, по крайней мере, это то, что люди начали называть их). Однако они не являются фактическими сокетами в смысле API сокета; они не могут быть, поскольку это всего лишь число. Таким образом, их аналог в сокете IPv4 – это не тот номер, а вместо этого IP-адрес и номер порта партнера, с которым вы разговариваете.

    Иногда я добавлю, что, поскольку API сокета не касается напрямую файлов, эти представления файловой системы не являются строго необходимыми. В самом деле, Linux имеет концепцию «анонимных сокетов домена UNIX», которые являются именно такими: сокеты домена UNIX без какой-либо ссылки в файловой системе …

    Linux и Unix - лучшая ОС в мире.