Java MINA Expose Socket - PullRequest
       28

Java MINA Expose Socket

0 голосов
/ 04 мая 2011

Я работаю с реализацией MINA, которая использует NioAccepter.

Моя задача - создать базовый интерфейс фреймворка java.net.Socket как с другими фреймворками java.net.Socket, так и с фреймворком Apache MINA NIO. Это должно было быть достаточно просто, передать необработанный сокет из MINA в мою платформу.

Однако мне еще не удалось раскрыть необработанный сокет. Это первый раз, когда я смотрю на платформу MINA, и я в замешательстве.

Ближайший результат, который я получил, был такой:

((SocketChannel)((NioSession)sess).channel).socket()

Что бы решило мои проблемы, кроме NioSession.channel защищен.

Я что-то здесь упускаю?

1 Ответ

2 голосов
/ 04 мая 2011

Не многие фреймворки предоставляют вам доступ к базовому сокету.Это действительно безопасно для использования одним потоком, когда другие потоки не блокируют его.Здесь MINA использует инкапсуляцию, чтобы заблокировать его, и они используют модель асинхронного селектора, поэтому вам не следует вообще прикасаться к сокету, иначе вы испортите его.

В любом случае, лучшая идеяесли вы действительно хотите использовать несколько сокетов, просто используйте разные порты.Правда, просто придерживайся одного.И я бы посоветовал KryoNet , который делает то же самое, но с гораздо меньшим количеством строк кода, если вы хотите разбираться с чем-то, что вы можете изменить, и это легко понять.Я уже изменил свою версию KryoNet.

...