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?

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.


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.


Cóż za prosty i elegancki pomysł!
iono
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.