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

Я прав, что

  • Одновременное чтение / запись в один и тот же Unix-сокет?
  • Почему существует * Когда упоминается Unix по всему Интернету?
  • Не удается запустить приложения из-за ошибки «Максимальное количество клиентов»
  • Почему длина пути сокета ограничена до сотни символов?
  • Что особенного: «! Xxx% s% s% s% s% s% s% s% s»?
  • Получить временную последовательность в Unix?
  • Как программы UNIX взаимодействовали друг с другом, до изобретения трубы?
  • Правильная обработка Python2 и Python3
  • 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 - лучшая ОС в мире.