¿Hay un comando similar a mkfifo pero para los sockets de dominio?
¿Hay un comando similar a mkfifo pero para los sockets de dominio?
Respuestas:
No hay un equivalente exacto de mkfifo para el socket, es decir, no hay un comando que simplemente cree un socket "colgado". Esto es por razones históricas: la función del servidor bind (), la que crea un nombre / inodo de socket en el sistema de archivos, falla si el nombre ya está en uso. En otras palabras, el servidor no puede funcionar en un socket preexistente.
Por lo tanto, si hubiera creado un socket antes, el servidor debería eliminarlo de todos modos primero. Sin beneficio. Como puede ver con la respuesta de Gregory, puede crear un socket SI mantiene un servidor para él, como netcat. Una vez que un servidor se ha ido, el viejo socket se ha ido. Un nuevo servidor tiene un nuevo socket, y todos los clientes necesitan volver a conectarse, a pesar de que el nombre del socket sea idéntico.
Los programas netcat (nc) más recientes y similares (socat hasta donde yo sé) tienen opciones de socket de dominio.
De lo contrario, puedes echar un vistazo a ucspi-unix
# sudo apt-get install netcat-openbsd
Puedes usar python:
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')"
También C, mira esta respuesta .
mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }
para un uso fácil de la carcasa: mksock /tmp/test.sock
Simplemente uso netcat
y sigo escuchando en tal caso:
nc -lkU aSocket.sock
deberías usar netcat-openbsd . netcat-traditional no tiene -U
conmutador que sea para socket de dominio Unix.
nc
en BSD.