Que sont les fichiers socket?

23

Récemment, j'ai commencé à utiliser tmux; J'essaie d'utiliser la fonction de programmation de paire dans ce logiciel. Pendant le processus, un fichier socket a été créé. Ma question est: que sont les fichiers socket, comment les ouvrir sur Ubuntu et comment sont-ils utilisés?

Moha le chameau tout-puissant
la source

Réponses:

34

Les sockets sont un type de fichier spécial, similaire aux sockets TCP / IP, fournissant une mise en réseau interprocessus protégée par le contrôle d'accès du système de fichiers.

Par exemple, lorsque vous ouvrez une socket d'écoute dans un terminal avec netcat:

nc -lU socket.sock

puis envoyez les données depuis un autre terminal en:

echo mytext | nc -U socket.sock

mytext apparaît sur le premier terminal.

Par défaut, nc arrête d'écouter après un caractère de fin de fichier.

K7AAY
la source
Je ne semble pas avoir l'option U avec nc, j'ai une option U d'erreur non définie. Un socket.sockfichier que vous avez créé précédemment? Pouvez-vous utiliser tmux -S et utiliser le descripteur de fichier de socket (typiquement 3) depuis l'une des extrémités du socket pour envoyer des données sur ce socket?
aDoN
@aDoN installe nc.openbsd, vous avez le nc.traditional.
Cuauhtli
18

Un socket de domaine Unix est un canal bidirectionnel similaire à un socket TCP / IP. Un serveur écoute et accepte les connexions des clients, puis peut communiquer avec le client sur la connexion nouvellement acceptée. La particularité des sockets de domaine Unix est qu'au lieu d'avoir une adresse IP et un numéro de port, ils ont un nom de fichier comme adresse. Cela permet à d'autres applications qui ne connaissent rien de la mise en réseau de se voir dire d'ouvrir le fichier et de lire ou d'écrire et les données sont envoyées au serveur plutôt qu'au disque.

psusi
la source
Quelle idée simple et élégante!
iono