Co to są pliki gniazd?

23

Ostatnio zacząłem używać tmux; Próbuję użyć funkcji programowania par w tym oprogramowaniu. Podczas tego procesu utworzono plik gniazda. Moje pytanie brzmi: co to są pliki gniazd, jak mogę je otworzyć w Ubuntu i jak są używane?

Wszechmocny wielbłąd Moha
źródło

Odpowiedzi:

34

Gniazda to specjalny typ plików, podobny do gniazd TCP / IP, zapewniający międzyprocesową sieć chronioną przez kontrolę dostępu do systemu plików.

Na przykład po otwarciu gniazda nasłuchującego w jednym terminalu za pomocą netcat:

nc -lU socket.sock

następnie wyślij dane z innego terminala przez:

echo mytext | nc -U socket.sock

mytext pojawia się na pierwszym terminalu.

Domyślnie nc przestaje nasłuchiwać po znaku końca pliku.

K7AAY
źródło
Wydaje mi się, że nie mam opcji U z nc, dostałem błąd Nie zdefiniowano opcji U Czy socket.sockplik, który utworzyłeś wcześniej? Czy możesz użyć tmux -S i użyć deskryptora pliku gniazda (typowo 3) z jednego z końców gniazda, aby wysłać dane na to gniazdo?
aDoN
@DoN zainstaluj nc.openbsd, masz nc.traditional.
Cuauhtli,
18

Gniazdo domeny unix to potok dwukierunkowy podobny do gniazda TCP / IP. Serwer nasłuchuje i przyjmuje połączenia od klientów, a następnie może komunikować się z klientem na nowo zaakceptowanym połączeniu. Szczególne w gniazdach domeny unix jest to, że zamiast adresu IP i numeru portu, mają nazwę pliku jako adres. Pozwala to innym aplikacjom, które nic nie wiedzą o sieci, na polecenie otwarcia pliku oraz odczytu lub zapisu, a dane są wysyłane na serwer zamiast na dysk.

psusi
źródło
Cóż za prosty i elegancki pomysł!
iono