Що таке файли сокетів?


23

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

Відповіді:


34

Сокети - це спеціальний тип файлу, подібний до сокетів TCP / IP, що забезпечує міжпроцесорну мережу, захищену контролем доступу до файлової системи.

Наприклад, коли ви відкриваєте розетку прослуховування в одному терміналі за допомогою netcat:

nc -lU socket.sock

потім надсилайте дані з іншого терміналу:

echo mytext | nc -U socket.sock

mytext з'являється на першому терміналі.

За замовчуванням nc припиняє прослуховування після символу End-of-File.


У мене, здається, немає опції U з nc, я отримав помилку U варіант не визначений. Це socket.sockфайл, який ви створили раніше¿? Чи можете ви використовувати tmux -S і використовувати дескриптор файлу сокета (типично 3) з одного з кінців сокета для надсилання даних у цей сокет¿?
aDoN

@aDoN встановіть nc.openbsd, у вас є nc.traditional.
Чаухтлі

18

Розетка домену unix - це двонаправлена ​​труба, подібна до сокета TCP / IP. Сервер прослуховує та приймає з'єднання від клієнтів, а потім може спілкуватися з клієнтом на новоприйнятому з'єднанні. Особливістю сокетів домену Unix є те, що замість IP-адреси та номера порту вони мають ім'я файлу як свою адресу. Це дозволяє іншим програмам, які нічого не знають про мережу, повідомляти про відкриття файлу та читання або запис, а дані надсилаються на сервер замість диска.


Яка проста і елегантна ідея!
Іоно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.