问题描述
一直以来对ByteBuffer一知半解,对于如下问题傻傻分不清:ByteBuffer是缓存,NIO中的Socket也有读写缓存,网卡也有缓存,它们之间关系如何?本人的理解是,ByteBuffer属于应用级别缓存,它跟ShortBuffer,IntBuffer等等都继承自Buffer,只是不同基础数据类型的缓存,它从Socket的读缓存中读取数据,它将用户用socketChannle.write(ByteBuffer)写入到ByteBuffer中的数据写入到Socket写缓存,然后Socket根据TCP或者UDP协议讲来自应用层ByteBuffer缓存中的数据传给网卡缓存,网卡将数据封装成数据帧,最终以二进制流的形式传递到其它的网卡,然后同样的过程经过网卡缓存,到Socket读缓存,最后到ByteBuffer缓存,是这个过程么?请高人指点迷津!
解决方案
时间: 2024-11-01 04:57:40