Могу ли я получить доступ к SocketChannel из ChannelHandlerContext в Netty?

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

В нашем серверном процессе нам иногда нужно получить доступ к SocketChannel напрямую, чтобы отправить данные клиенту с помощью Channel.transferTo(), и я не вижу способа получить доступ к SocketChannel в Netty. Например, в интерфейсе ChannelHandlerContext ничего нет.

Я начну копаться в исходном коде, но кто-нибудь знает, возможно ли это?

Спасибо,

Энди.


person andygrove    schedule 21.11.2014    source источник


Ответы (1)


Нет, нет способа сделать это. Для чего вам нужен TransferTo(...)?

person Norman Maurer    schedule 21.11.2014
comment
Для передачи данных из файла на диске в сокет без предварительной загрузки в память JVM. например FileChannel.transferTo(socketChannel). - person andygrove; 22.11.2014
comment
Вы можете использовать DefaultFileRegion для этого в Netty. - person Norman Maurer; 22.11.2014