2010-11-04 174 views
13

我看到这些线程UNIX socket implementation for Java?http://forums.sun.com/thread.jspa?threadID=713266UNIX域套接字在Java中

第二个环节说的Java已经支持UNIX域套接字。如果那是真的,我需要从Java实现什么类?

从第一个环节,它说,Java不支持Unix域套接字。如果您需要UNIX域套接字,则必须使用第三方库。

那么,这是什么?无需使用第三方(本机)库

+4

第二个环节(forums.sun.com)被打破,似乎导致了甲骨文的一些无处领先页面。没有archive.org发现,顺便说一句,伤心。 – Tino 2015-05-23 19:21:47

回答

13

的Java不能创建或访问UNIX域套接字。上面第二个链接的最后一条评论提到了这一点。

第一个环节上有一些很好的(正确)的信息。

16

你可以使用junixsocket:https://github.com/kohlschutter/junixsocket

它通过JNI库提供了AF-UNIX支持,利用了Java的Socket API。它甚至允许通过Unix套接字从Java(Connector/J)连接到MySQL。

+2

截至2015年11月,在* junixsocket *项目所在的https://github.com/kohlschutter/junixsocket – VirtualMichael 2015-11-04 05:55:06

+3

要小心,它仅支持数据流模式Unix套接字。使用'netstat -ux'检查你的服务器是否打开。另请参见[UNIX域STREAM和DATAGRAM套接字之间的区别](http://stackoverflow.com/questions/13953912)。 – Florian 2017-03-16 15:43:17

3

的Netty也支持它,因为4.0.26版本:https://github.com/netty/netty/pull/3344

+1

小心,它只支持STREAM模式下的Unix套接字。使用'netstat -ux'检查你的服务器是否打开。另请参见[UNIX域STREAM和DATAGRAM套接字之间的区别](http://stackoverflow.com/questions/13953912)。 – Florian 2017-03-16 15:44:08