最近剛開始學習Mina框架,想做一個小demo,但是遇到解碼函式不能獲取報文正確的長度,每次都回傳一個很大的值,代碼如下:
@Override
protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
if (!(in.hasremaining()){
return false;
}
if (in.remaining() > 1) {
// 標記設為當前
in.mark();
// 獲取總長度
int length = in.getInt(in.position());
// 如果可讀取資料的長度 小于 總長度 - 包頭的長度 ,則結束拆包,等待下一次
if (in.remaining() < (length - MyPack.PACK_HEAD_LEN)) {
in.reset();
return false;
} else {
}
獲取報文總長度時, int length = in.getInt(in.position()); 這個length的值每次都是一個很大的值,請問大家有什么思路嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/91197.html
標籤:Apache
