案例:网络上有多条数据发送给服务端,数据之间使用了\n分隔,由于某种原因数据在接收时候,重新组合。
例如原始数据:
Hello,xiaoming\n
I'm wangming\n
How are you?\n
变成了:
Hello,xiaoming\nI'm wangming\nHo
w are you?\n
消息合到一起叫黏包,消息截断叫半包
需求:编写程序,将错乱数据恢复成原始数据,按\n分隔
@Slf4j
public class ExamDemo {
public static void main(String[] args) {
ByteBuffer source = ByteBuffer.allocateDirect(32);
source.put("Hello world\nI'm zhangsan\nHo".getBytes());
split(source);
source.put("w are you?\n".getBytes());
split(source);
}
private static