簡體   English   中英

Python或Java是否支持抽象名稱空間中的UNIX域套接字?

[英]Does Python or Java support UNIX domain socket in abstract namespace?

像這樣

abstract:抽象套接字地址的特征在於sun_path [0]是空字節('\\ 0')。 此名稱空間中套接字的地址由sun_path中的其他字節給定,這些字節由地址結構的指定長度覆蓋。 (名稱中的空字節沒有特殊意義。)該名稱與文件系統路徑名沒有任何關系。 當getsockname(2),getpeername(2)和accept(2)返回抽象套接字的地址時,返回的addrlen大於sizeof(sa_family_t)(即大於2)和套接字的名稱包含在sun_path的前(addrlen-sizeof(sa_family_t))個字節中。 抽象套接字名稱空間是不可移植的Linux擴展。

我想連接在抽象名稱空間(@xxx或\\ 0xxx)中創建的套接字。

自2006年版本2.5起,Python中就一直支持“ Linux抽象套接字名稱空間”。

這是根據源和更改日志。 雜項/歷史記錄 (注意:大文件)

補丁#1062014:Linux下的AF_UNIX套接字具有一個特殊的抽象命名空間,現已完全受支持。

這不是在Python2文檔中提到,但在最新的明確提到的Python 3插座文檔

您是否在Python2下嘗試過?

至於Java,它甚至不直接支持AF_UNIX套接字。 它需要JNI。 有很多實現(搜索),但是您幾乎肯定會需要進行一些C開發才能獲得Linux抽象名稱空間的支持。

您可以嘗試Jtux。它是Java的完整UNIX api庫,當然包括AF_UNIX套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM