【发布时间】:2012-02-05 15:01:12
【问题描述】:
有没有办法在 Java NIO 中使用 Unix 域套接字? 我想使用 NIO,以便可以在单个线程中使用 Selectors。
我查看了junixsocket,但它似乎只支持普通套接字而不是支持选择器的 NIO 通道。
【问题讨论】:
标签: java css-selectors nio unix-socket
有没有办法在 Java NIO 中使用 Unix 域套接字? 我想使用 NIO,以便可以在单个线程中使用 Selectors。
我查看了junixsocket,但它似乎只支持普通套接字而不是支持选择器的 NIO 通道。
【问题讨论】:
标签: java css-selectors nio unix-socket
您可以使用项目 jnr-unixsocket,(https://github.com/jnr/jnr-unixsocket),这是我见过的最先进的实现。它完全符合您的要求:nio 概念选择器、通道等
看@https://github.com/jnr/jnr-unixsocket/tree/master/src/test/java/jnr/unixsocket/example
【讨论】:
JDK 16 内置了对 Unix 域套接字的支持。这里是an example from Oracle about using it with NIO
【讨论】:
我确认XNIO 支持使用 Unix 域套接字,作为“本地套接字”。除了发行说明提及之外,还有:
但是没有一个 XNIO 通道实现SelectableChannel,所以我担心你将无法使用选择器。
我建议您在 XNIO 和 GNU ClassPath project 中发布一个问题来改善这种情况,其中 LocalSocket.getSocketChannel 返回 null。
【讨论】: