¿Qué son los archivos de socket?

23

Recientemente, comencé a usar tmux; Estoy tratando de usar la función de programación de pares en ese software. Durante el proceso se creó un archivo de socket. Mi pregunta es: ¿qué son los archivos de socket, cómo voy a abrirlos en Ubuntu y cómo se usan?

Moha el todopoderoso camello
fuente

Respuestas:

34

Los sockets son un tipo de archivo especial, similar a los sockets TCP / IP, que proporcionan redes entre procesos protegidos por el control de acceso del sistema de archivos.

Por ejemplo, cuando abre un socket de escucha en un terminal con netcat:

nc -lU socket.sock

luego envíe datos desde otro terminal por:

echo mytext | nc -U socket.sock

mytext aparece en la primera terminal.

Por defecto, nc deja de escuchar después de un carácter de Fin de archivo.

K7AAY
fuente
Parece que no tengo la opción U con nc, recibí una opción U de error no definida. ¿Es socket.sockun archivo que creó anteriormente¿? ¿Puedes usar tmux -S y usar el descriptor de archivo de socket (típicamente 3) desde uno de los extremos del socket para enviar datos en ese socket¿?
aDoN
@aDoN instalar nc.openbsd, tienes el nc.traditional.
Cuauhtli
18

Un socket de dominio Unix es una tubería bidireccional similar a un socket TCP / IP. Un servidor escucha y acepta conexiones de clientes, y luego puede comunicarse con el cliente en la conexión recién aceptada. Lo especial de los sockets de dominio Unix es que, en lugar de tener una dirección IP y un número de puerto, tienen un nombre de archivo como su dirección. Esto permite que otras aplicaciones que no saben nada acerca de las redes tengan que abrir el archivo y leer o escribir y los datos se envían al servidor en lugar de al disco.

psusi
fuente
¡Qué idea tan simple y elegante!
iono