Cosa sono i file socket?


23

Di recente, ho iniziato a usare tmux; Sto cercando di utilizzare la funzione di programmazione della coppia in quel software. Durante il processo è stato creato un file socket. La mia domanda è: cosa sono i file socket, come posso aprirli su Ubuntu e come vengono utilizzati?

Risposte:


34

I socket sono un tipo di file speciale, simile ai socket TCP / IP, che fornisce reti tra processi protette dal controllo di accesso del file system.

Ad esempio, quando si apre una presa di ascolto in un terminale con netcat:

nc -lU socket.sock

quindi inviare i dati da un altro terminale:

echo mytext | nc -U socket.sock

mytext appare sul primo terminale.

Per impostazione predefinita nc interrompe l'ascolto dopo un carattere di fine file.


Non sembra avere l'opzione U con nc, ho un'opzione U di errore non definita. È socket.sockun file creato in precedenza? Puoi usare tmux -S e usare il descrittore di file socket (tipicamente 3) da una delle estremità del socket per inviare dati su quel socket?
aDoN,

@aDoN install nc.openbsd, hai il nc.traditional.
Cuauhtli,

18

Un socket di dominio unix è una pipe bidirezionale simile a un socket TCP / IP. Un server ascolta e accetta connessioni dai client, quindi può comunicare con il client sulla connessione appena accettata. La particolarità dei socket di dominio unix è che invece di avere un indirizzo IP e un numero di porta, hanno un nome file come indirizzo. Ciò consente ad altre applicazioni che non conoscono nulla della rete di poter dire di aprire il file e leggere o scrivere e i dati vengono inviati al server anziché al disco.


Che idea semplice ed elegante!
iono
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.