zuoxiao
2024-03-06 1cbb505922e010cace51020773a2dc1529713322
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.easysocket.config;
 
import com.easysocket.interfaces.config.IMessageProtocol;
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
 
/**
 * Author:Alex
 * Date:2019/5/31
 * Note:默认的消息协议,header为4个字节,保存消息体 body的长度
 */
public class DefaultMessageProtocol implements IMessageProtocol {
    @Override
    public int getHeaderLength() {
        return 4; // 包头长度,用来保存body的长度值
    }
 
    @Override
    public int getBodyLength(byte[] header, ByteOrder byteOrder) {
        if (header == null || header.length < getHeaderLength()) {
            return 0;
        }
        ByteBuffer bb = ByteBuffer.wrap(header);
        bb.order(byteOrder);
        return bb.getInt(); // body的长度以int的形式保存在 header
    }
}