粘包,拆包,读半包和写半包问题

1.粘包:当我们一个消息只有10个字节,但是我们一次性读取的字节有1024字节,此时发生了粘包。也就是读取的数据有可能超过一个完整的数据包或者过多或者过少的半包。
2.拆包:针对于发生了粘包的数据,我们需要拆包。按照业务数据指定长度获得合理的消息字节长度
3.读半包:值当我们触发channelRead时候,读取到的数据并不满足一次完整的业务数据包,所以我们一般将读取到的半包数据暂存,等待后面继续读取数据,读取到完整的数据。
4.写半包:写半包不存在,一般都是我们发送一个链表flushed 如果在16次循环发生中没有发送完成 我们就积攒到下一次发送
我们每次都是把消息聚合1024个bytebuffer 每个buffer 设置了最大上限

你可能感兴趣的:(粘包,拆包,读半包和写半包问题)