Apakah ada perintah yang mirip dengan mkfifo tetapi untuk soket domain?
Apakah ada perintah yang mirip dengan mkfifo tetapi untuk soket domain?
Jawaban:
Tidak ada padanan pasti dari mkfifo untuk soket, yaitu tidak ada perintah yang hanya membuat soket "menggantung". Ini karena alasan historis: fungsi server bind (), yang membuat nama socket / inode dalam sistem file, gagal jika nama tersebut sudah digunakan. Dengan kata lain, server tidak dapat beroperasi pada soket yang sudah ada sebelumnya.
Jadi jika Anda membuat socket lebih awal, itu harus dihapus oleh server terlebih dahulu. Tidak ada manfaatnya Seperti yang Anda lihat dengan jawaban Gregory, Anda dapat membuat soket JIKA Anda menyimpan server untuk itu, seperti netcat. Setelah server hilang, soket lama hilang. Server baru memiliki soket baru, dan semua klien harus terhubung kembali, meskipun nama soketnya sama.
Netcat terbaru (nc) dan program serupa (socat sejauh yang saya tahu) memiliki opsi soket domain.
Lain, Anda dapat melihat ucspi-unix
# sudo apt-get install netcat-openbsd
Anda bisa menggunakan python:
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')"
Juga C, lihat jawaban ini .
mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }
untuk penggunaan shell yang mudah: mksock /tmp/test.sock
Saya hanya menggunakan netcat
dan tetap mendengarkan dalam kasus seperti ini:
nc -lkU aSocket.sock
Anda harus menggunakan netcat-openbsd . netcat-traditional tidak memiliki -U
saklar yang untuk soket Unix Domain.
nc
di BSD.