7

有没有办法在 Java NIO 中使用 Unix 域套接字?我想使用 NIO,以便可以在单个线程中使用选择器。

我查看了junixsocket,但它似乎只支持普通套接字而不是支持选择器的 NIO 通道。

4

3 回答 3

9

您可以使用项目 jnr-unixsocket,( https://github.com/jnr/jnr-unixsocket ),这是我见过的最先进的实现。它完全符合您的要求:nio 概念选择器、通道等

看@https ://github.com/jnr/jnr-unixsocket/tree/master/src/test/java/jnr/unixsocket/example

于 2013-06-30T00:20:19.463 回答
2

JDK 16 内置了对 Unix 域套接字的支持。这是Oracle 的一个关于在 NIO 中使用它的示例

于 2021-10-01T15:37:06.613 回答
1

我确认XNIO支持使用 Unix 域套接字,作为“本地套接字”。除了发行说明提及之外,还有:

但是没有一个 XNIO 通道实现SelectableChannel,所以我担心你将无法使用选择器。

我建议您在 XNIO 和LocalSocket.getSocketChannel返回的GNU ClassPath 项目中发布一个问题来改善这种情况。null

于 2012-03-12T07:59:33.233 回答