Использование Java NIO с сокетами домена Unix в неблокирующем режиме с селекторами

Есть ли способ использовать сокеты домена Unix с Java NIO? Я хочу использовать NIO, чтобы использовать селекторы в одном потоке.

Я просмотрел junixsocket, но, похоже, он поддерживает только обычные сокеты, а не каналы NIO, которые поддерживают селекторы. .


person jbx    schedule 08.01.2012    source источник


Ответы (2)


Вы можете использовать проект jnr-unixsocket,(https://github.com/jnr/jnr-unixsocket), что является самой продвинутой реализацией, которую я видел. Он делает именно то, что вы хотите: селекторы концепций nio, каналы и т. д.

Посмотрите @ https://github.com/jnr/jnr-unixsocket/tree/master/src/test/java/jnr/unixsocket/example

person taharqa    schedule 30.06.2013
comment
пожалуйста. Мне удается читать и писать http-запрос от прокси-сервера nginx к домену сокета unix с ним. - person taharqa; 05.07.2013

Я подтверждаю, что XNIO поддерживает использование сокетов домена Unix в качестве "локальных сокетов". Помимо упоминания о выпуске, здесь приведены:

Но ни один из каналов XNIO не реализует SelectableChannel. поэтому я боюсь, что вы не сможете использовать селекторы.

Я предлагаю вам опубликовать вопрос, чтобы исправить эту ситуацию, как в XNIO, так и в проекте GNU ClassPath где LocalSocket.getSocketChannel возвращает null.

person Yves Martin    schedule 12.03.2012
comment
Спасибо. Жаль, что XNIO не реализует селекторы, это одно из главных преимуществ NIO. - person jbx; 13.03.2012
comment
Хотя ответ не включает поддержку селекторов, это лучший ответ. - person jbx; 14.03.2012
comment
Обновление: получено подтверждение от фактического разработчика XNIO, что на самом деле он не поддерживает Unix Domain Socket. Интерфейс определяет его, но реализация еще не существует. Готовится реализация... - person jbx; 10.04.2012
comment
Так что подождите... В вашем ответе говорится, что вы подтверждаете, что XNIO поддерживает сокеты unix, но здесь есть комментарий, в котором говорится, что это не так. Только один из вас прав. Я отрицаю этот ответ, пока это не будет решено. - person Mike Pone; 19.02.2014
comment
Вау, это довольно старая тема. В то время у XNIO API был интерфейс, который позволял выбирать unix-сокеты, однако я получил ответ от одного из разработчиков, что реализация все еще недоступна. Может быть, это изменилось, прошло почти 2 года с тех пор, как я спросил. - person jbx; 21.02.2014
comment
Я просмотрел последний бета-код 3.2, и похоже, что API все еще существует без реализации. grepcode.com/file/repo1.maven.org/maven2/org.jboss.xnio/ - person Mike Pone; 24.03.2014