从shell脚本写入Mac OS X上的AF_LOCAL套接字

时间:2012-07-11 20:13:06

标签: macos sockets shell

我有一个Mac OS X应用程序,它创建一个AF_LOCAL套接字(/tmp/app.sock)。有没有办法从shell脚本写入这种类型的套接字?我已经尝试过明显的(“echo xxx> /tmp.app.sock”)和一些不太明显的(“exec 3<> /tmp/app.sock”),但我似乎没有得到任何地方。有没有一个技巧,或者我应该咬紧牙关,写几行C或Java来做我需要的东西?谢谢!

1 个答案:

答案 0 :(得分:1)

Netcat是你的朋友。

echo xxx | nc -U /tmp/app.sock

要测试这是否有效,首先打开另一个终端并输入:

nc -lU /tmp/app.sock

然后返回第一个终端再次运行第一个命令。

请注意,互联网上的大多数文档都是original (Hobbit) netcatGNU Netcat,而不是BSD netcat。但它并没有那么不同,并且联机帮助页应该可以帮助您处理大部分差异。

你无法弄清楚如何处理netcat,试试socat(遗憾的是它不是内置于Mac上,但很容易通过Homebrew或MacPorts或手动安装)。