Was sind Socket-Dateien?

23

Vor kurzem habe ich angefangen, tmux zu benutzen. Ich versuche, die Paarprogrammierungsfunktion in dieser Software zu verwenden. Während des Vorgangs wurde eine Socket-Datei erstellt. Meine Frage ist: Was sind Socket-Dateien, wie kann ich sie unter Ubuntu öffnen und wie werden sie verwendet?

Moha das allmächtige Kamel
quelle

Antworten:

34

Sockets sind ein spezieller Dateityp, der TCP / IP-Sockets ähnelt und eine prozessübergreifende Netzwerkverbindung bietet, die durch die Zugriffssteuerung des Dateisystems geschützt ist.

Wenn Sie beispielsweise mit netcat einen Listening-Socket in einem Terminal öffnen, geschieht Folgendes:

nc -lU socket.sock

Dann senden Sie Daten von einem anderen Terminal aus über:

echo mytext | nc -U socket.sock

mytext erscheint im ersten terminal.

Standardmäßig hört nc nach einem Dateiende-Zeichen auf zu lauschen.

K7AAY
quelle
Ich habe anscheinend keine U-Option mit nc, ich habe eine nicht definierte Fehler-U-Option. Wurde zuvor socket.sockeine Datei erstellt? Können Sie tmux -S verwenden und den Socket-Dateideskriptor (Typ 3) an einem der Enden des Sockets verwenden, um Daten über diesen Socket zu senden?
aDoN
@aDoN installieren nc.openbsd, Sie haben die nc.traditional.
Cuauhtli
18

Ein Unix-Domain-Socket ist eine bidirektionale Pipe ähnlich einem TCP / IP-Socket. Ein Server lauscht und akzeptiert Verbindungen von Clients und kann dann über die neu akzeptierte Verbindung mit dem Client kommunizieren. Das Besondere an Unix-Domain-Sockets ist, dass sie anstelle einer IP-Adresse und einer Portnummer einen Dateinamen als Adresse haben. Auf diese Weise können andere Anwendungen, die nichts über das Netzwerk wissen, angewiesen werden, die Datei zu öffnen und zu lesen oder zu schreiben, und die Daten werden nicht auf die Festplatte, sondern zum Server gesendet.

Psusi
quelle
Was für eine einfache und elegante Idee!
Iono