2014-10-27 42 views
3

我有一個abstract Linux socket監聽連接。Bash:連接到Linux抽象UNIX套接字

一個抽象的Linux套接字基本上是一個名爲AF_UNIX套接字 - 除了名稱不是指文件系統上的文件。相反,名稱只是位於內核中抽象套接字名稱空間內的唯一名稱。

我的問題:是否有任何方法可以簡單地使用Bash shell連接到抽象套接字?我從this question知道,您可以使用socatnetcat連接到與文件系統上的文件關聯的正常名爲AF_UNIX的套接字。但是,當我試圖用抽象套接字來使用它時,它不起作用(它將我的名稱字符串當作文件處理,並報告「找不到文件」,這是我的預期。)

那麼,我可以使用任何實用工具連接到抽象 Linux套接字?

回答

4

socat的現代版本僅爲此目的而具有ABSTRACT名稱空間。

the manual引用:

摘要-CONNECT:<串>

摘要-LISTEN:<串>

摘要-SENDTO:<串>

抽象recvfrom的:<string>

摘要:RECV:<串>

摘要:客戶:<串>

抽象的地址幾乎是相同的,只是他們不處理基於文件系統的套接字相關的UNIX地址,但一備用UNIX域地址空間。要實現這一點,套接字地址字符串在內部前綴爲「\ 0」。該功能在Linux上可用(僅限?)。選項組與UNIX地址相同,但ABSTRACT地址不是NAMED組的成員。