Câu trả lời:
Không có tương đương chính xác của mkfifo cho ổ cắm, tức là không có lệnh nào chỉ tạo ra một ổ cắm "treo". Điều này là vì lý do lịch sử: hàm của máy chủ bind (), cái tạo ra tên socket / inode trong hệ thống tập tin, không thành công nếu tên này đã được sử dụng. Nói cách khác, máy chủ không thể hoạt động trên một ổ cắm có sẵn.
Vì vậy, nếu bạn đã tạo ổ cắm sớm hơn, trước tiên bạn cần phải xóa máy chủ. Không có lợi ích. Như bạn thấy với câu trả lời của Gregory, bạn có thể tạo một ổ cắm NẾU bạn giữ một máy chủ cho nó, chẳng hạn như netcat. Khi một máy chủ không còn, ổ cắm cũ sẽ biến mất. Một máy chủ mới có một ổ cắm mới và tất cả các máy khách cần kết nối lại, mặc dù tên của ổ cắm giống hệt nhau.
Hầu hết các netcat (nc) gần đây và các chương trình tương tự (socat theo như tôi biết) đều có các tùy chọn ổ cắm tên miền.
Khác, bạn có thể có một cái nhìn tại ucspi-unix
# sudo apt-get install netcat-openbsd
Bạn có thể sử dụng python:
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')"
Còn C, xem câu trả lời này .
mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }
để sử dụng vỏ dễ dàng: mksock /tmp/test.sock
Tôi chỉ đơn giản là sử dụng netcat
và tiếp tục lắng nghe trong trường hợp như vậy:
nc -lkU aSocket.sock
bạn nên sử dụng netcat-openbsd . netcat-truyền thống không có -U
công tắc dành cho ổ cắm tên miền Unix.
nc
trên BSD.