我在decoder中解析数据并处理粘包的问题,模拟到了一种情况就是收到的是断包,且这段断包为一段完整数据包的后半段(实际上就是无用的了),想去除这段数据,也就是清空IoBuffer。看了一下api貌似没有彻底清空的方法,swipe和clear也都试过了,没有效果。
我现在想到一个办法就是建一个数组,然后如果为无用数据加用ioBuffer.get()读进数组,然后再把数组清空,这样下次就不会有这段数据了,这样测试一次可以,等多次测试的时候又无效了。我想问的是有没有一个有效的清除掉IoBuffer中缓存的数据包的方法,谢谢
else {
in.get(nullByteArray);
nullByteArray = null;
return false;
}