Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

получение коннектов в Netty

#java #netty


Перед тем как написать сюда были предприняты попытки узнать все это у googla, но
нечего путного он не выдает, на сайте библиотеки с инфой скудно.

Как на сервере можно получить коннект клиента, чтобы потом с ним работать в отдельных
потоках? В old I/O это можно было сделать при помощи serverSocket.accept()
    


Ответы

Ответ 1



Коннект клиента можно получить следующим образом: на сервере создается handler и переопределяются нужные методы например channelActive в этот handler можно передать то куда будут складываться коннекты и при удачном подключении вызовется channelActive и в нем можно будет вытащить из ChannelHandlerContext коннект(Channel). @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { server.channel = ctx.channel(); } Дальше channel предоставляет возможность отправки и получения сообщений, но просто так отправить строку или набор байтов не выйдет(у меня не получилось), для этого нужно использовать ByteBuf. ByteBuf buf = channel.alloc().buffer(); buf.writeBytes("message".getBytes()); chanel.pipeline().writeAndFlush(buf); P.S надеюсь кому нибудь это пригодится.

Комментариев нет:

Отправить комментарий