2012-07-11 76 views
1

我有一個創建AF_LOCAL套接字(/tmp/app.sock)的Mac OS X應用程序。有沒有辦法從shell腳本寫入這種類型的套接字?我已經嘗試了明顯的(「echo xxx> /tmp.app.sock」)和一些不太明顯的(「exec 3 <> /tmp/app.sock」),但我似乎沒有得到任何地方。有沒有一個技巧,或者我應該咬緊牙關,寫幾行C或Java來做我所需要的?謝謝!從shell腳本在Mac OS X上寫入AF_LOCAL套接字

+1

您可能需要C/Java,因爲shell重定向基本上只會執行'fopen()'東西,而您需要connect()'將東西用於UNIX套接字。 – lanzz 2012-07-11 20:19:20

+1

有沒有這樣的功能內置到bash中,但是您可以使用netcat而不是那些幾行C或Java。 – abarnert 2012-07-12 00:04:32

回答

1

Netcat是你的朋友。

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

要測試這個工程,首先打開另一個終端並輸入:

nc -lU /tmp/app.sock 

然後回到你的第一個終端,然後再次運行的第一個命令。

請注意,互聯網上的大多數文檔或者是original (Hobbit) netcatGNU Netcat,而不是BSD netcat。但是沒有什麼不同,並且聯機幫助頁應該可以幫助您處理大部分差異。

任何你不能弄清楚如何處理netcat,嘗試socat(這可惜不是在Mac上內置,但很容易通過自制軟件或MacPorts或手動安裝)。