21 没有与套接字完全等效的mkfifo,即没有命令仅创建“挂起”套接字。这是出于历史原因:服务器功能bind()是在文件系统中创建套接字名称/索引节点的函数,如果该名称已被使用,则会失败。换句话说,服务器无法在预先存在的套接字上运行。 因此,如果您较早创建了套接字,则无论如何首先需要将其删除。没有好处 从格雷戈里的答案中可以看出,如果您为其保留服务器,则可以创建一个套接字,例如netcat。一旦服务器消失,旧的套接字也消失了。一个新的服务器具有一个新的套接字,尽管套接字的名称相同,但所有客户端都需要重新连接。 — 库班奇克 source
15 最新的netcat(nc)和类似程序(据我所知socat)具有域套接字选项。 另外,您可以看看ucspi-unix — 格雷戈里·穆萨特 source 1 nc在BSD上为+1 。 — 克林特·帕奇 1 在Debian上:# sudo apt-get install netcat-openbsd — Koutheir Attouchi博士 2 确定,一旦安装,如何创建“套接字文件” — Alexander Mills,
8 您可以使用python: python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')" 同样是C,请参见此答案。 — 阿科斯塔第诺夫 source mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }便于外壳使用: mksock /tmp/test.sock — Tino
0 netcat在这种情况下,我只是使用并保持收听状态: nc -lkU aSocket.sock 您应该使用netcat-openbsd。netcat-traditional没有-U用于Unix域套接字的开关。 — ima井 source -k强制nc在其当前连接完成后继续监听另一个连接。如果不使用-l选项,则使用此选项是错误的。-U指定使用UNIX域套接字。 — JohanBoulé
nc
在BSD上为+1 。