Назад | Перейти на главную страницу

Различия между сокетами домена UNIX и интернет-сокетами

Я думаю, разница в

Я думаю, что каждый открытый сокет домена UNIX по-прежнему имеет те же два потока, входной поток и выходной поток.

Это все правильно?

Кроме того, должен ли быть известен файл при подключении к сокету домена UNIX? Может ли пользователь без полномочий root найти сокеты домена UNIX и подключиться к ним?

Да, сокеты домена UNIX используют файловую систему в качестве адресного пространства имен, т.е. путь к файлу вместо URL / IP и порта. В страница руководства для сокета говорит

Разъем создает Интернет-домен TCP или сокет потока домена UNIX и подключает его к stdin и stdout. Аргумент хоста может быть номером Интернета в точечной нотации (например, `` 130.149.28.10 '') или именем домена. В этом случае должна быть возможность разрешить имя в допустимый адрес в Интернете с помощью gethostbyname. Аргументом порта может быть номер порта или имя службы, которое может быть сопоставлено с номером порта с помощью getservbyname. Если требуется создать сокет домена UNIX вместо интернет-сокета, укажите путь вместо хоста в Интернете (канонический домен с именем или записью через точку). Имя хоста рассматривается как имя пути, если содержит хотя бы одну косую черту. Т.е. если кто-то хочет создать или подключиться к сокету в текущем каталоге, используйте ./filename, чтобы указать точку подключения.

Доменные сокеты Unix быстрее IP-сокетов для локального межпроцессного взаимодействия, см. Вот и Вот или это связанный вопрос.

В Linux netstat -x показывает.