2010-11-04 2 views
13

Я вижу эти темы UNIX socket implementation for Java? и http://forums.sun.com/thread.jspa?threadID=713266.UNIX Socket Socket в Java

Вторая ссылка говорит, что Java уже поддерживает UNIX Socket Socket. Если это правда, какой класс мне нужно реализовать с Java ?.

Из первой ссылки говорится, что Java не поддерживает UNIX Domain Socket. Если вам нужен UNIX Socket Socket, вы должны использовать стороннюю библиотеку.

Итак, что это?

+4

Второе звено (forums.sun.com) нарушается, и, кажется, ведет к некоторому нигде ведущей странице Oracle. Нет, архив.org нашел, кстати, к сожалению. – Tino

ответ

13

Java не может создавать или получать доступ к Unix Domain Sockets без использования сторонней (родной) библиотеки. Последний комментарий к второй ссылке выше упоминает об этом.

У первой ссылки есть хорошая (и правильная) информация об этом.

16

Вы можете использовать junixsocket: https://github.com/kohlschutter/junixsocket

Он обеспечивает поддержку AF-UNIX с помощью библиотеки JNI, используя Java API сокетов. Он даже позволяет подключаться к MySQL с Java (Connector/J) через сокеты Unix.

+2

По состоянию на ноябрь 2015 года проект * junixsocket * находится на https://github.com/kohlschutter/junixsocket – VirtualMichael

+3

Будьте осторожны, он поддерживает только сокеты Unix в режиме STREAM. Проверьте, что открывается ваш сервер, с помощью 'netstat -ux'. См. Также [Разница между UNIX-доменом STREAM и DATAGRAM-сокетами] (http://stackoverflow.com/questions/13953912). – Florian

3

Нетти также поддерживает его, начиная с версии 4.0.26: https://github.com/netty/netty/pull/3344

+1

Будьте осторожны, он поддерживает только Unix-сокеты в режиме STREAM. Проверьте, что открывается ваш сервер, с помощью 'netstat -ux'. См. Также [Разница между UNIX-доменом STREAM и DATAGRAM-сокетами] (http://stackoverflow.com/questions/13953912). – Florian