其他分享
首页 > 其他分享> > Netty服务如何接收新的数据

Netty服务如何接收新的数据

作者:互联网

Netty服务如何接收新的数据

我们一起学习了服务接收新连接过程的源码剖析,发现一个很有趣的现象,其实,Netty 底层还是使用的 Java 原生的 NIO 来操作的.

那么,接收新数据也是一样吗?如果是,那么数据如何转化成 Netty 的 ByteBuf 呢?

我们知道,Java 原生 NIO 从 SocketChannel 中取出来的数据是存储在 ByteBuffer 里面的,也就是下面这样的代码:

if (selectionKey.isReadable()) {
    // 强制转换为SocketChannel
    SocketChannel socketChannel = (SocketChannel) selectionKey.channel();
    // 创建Buffer用于读取数据
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    // 将数据读入到buffer中(第二阶段阻塞)
    int length = socketChannel.read(buffer);
    // 处理数据。。。
}

标签:Netty,服务,buffer,ByteBuffer,接收,数据,SocketChannel
来源: https://blog.csdn.net/dgutliangxuan/article/details/119249207