нужна помощь в реализации потоков в NIO - PullRequest
1 голос
/ 23 мая 2009

Я хочу создать NIOServer, который читает данные из клиента, используя 1 поток, и записывает данные в клиент, используя другой поток. также будет разрешено подключение клиента в другом потоке.

Есть ли онлайн-справка

Спасибо Дипак

Ответы [ 3 ]

1 голос
/ 23 мая 2009

Зачем использовать так много потоков, если вам все проще с помощью селектора и одного потока? Если вы хотите использовать многопоточный подход к сетевому вводу / выводу, вам следует рассмотреть простые старые блокирующие сокеты.

Кстати, вы можете сделать все это с 3 селекторами: один принимает подключения, один читает и один пишет. Когда вы принимаете соединение, вы можете зарегистрировать канал с двумя другими селекторами с соответствующими интересами.

Конечно, когда вам нужно освободить канал, вы должны отменить SelectionKey от обоих селекторов (чтение и запись) или закрыть его.

0 голосов
/ 23 мая 2009

Я бы порекомендовал вам Apache Mina : очень гибкий, высокий уровень абстракции, высокая производительность и т. Д.

0 голосов
/ 23 мая 2009

Я предлагаю вам взглянуть на пример кода, который поставляется в JDK в каталоге sample / nio / server

...