繁体   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