Что такое файлы сокетов?

23

Недавно я начал использовать tmux; Я пытаюсь использовать функцию парного программирования в этом программном обеспечении. Во время процесса был создан файл сокета. Мой вопрос: что такое файлы сокетов, как мне открыть их в Ubuntu и как они используются?

Моха всемогущий верблюд
источник

Ответы:

34

Сокеты - это особый тип файлов, аналогичный сокетам TCP / IP, которые обеспечивают межпроцессное взаимодействие, защищенное контролем доступа файловой системы.

Например, когда вы открываете сокет прослушивания в одном терминале с помощью netcat:

nc -lU socket.sock

затем отправьте данные с другого терминала:

echo mytext | nc -U socket.sock

mytext появляется на первом терминале.

По умолчанию nc прекращает прослушивание после символа конца файла.

K7AAY
источник
У меня, кажется, нет опции U с nc, я получил ошибку U, опция не определена. Это socket.sockфайл, который вы создали ранее? Можете ли вы использовать tmux -S и использовать дескриптор файла сокета (tipicaly 3) с одного из концов сокета для отправки данных в этот сокет¿?
августа
@aDoN установить nc.openbsd, у вас есть nc.traditional.
Cuauhtli
18

Сокет домена unix - это двунаправленный канал, похожий на сокет TCP / IP. Сервер прослушивает и принимает соединения от клиентов, а затем может связываться с клиентом по вновь принятому соединению. Что особенного в доменных сокетах unix, так это то, что вместо IP-адреса и номера порта в качестве адреса используется имя файла. Это позволяет другим приложениям, которые ничего не знают о работе сети, получать информацию об открытии файла и чтении или записи, а данные отправляются на сервер, а не на диск.

psusi
источник
Какая простая и элегантная идея!
Ионо