编码器 import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder;
public class Encoder extends MessageToByteEncoder<Object> { @Override protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception { ByteBuf dataBuf = (ByteBuf) msg; byte[] data = new byte[dataBuf.readableBytes()]; dataBuf.readBytes(data); out.writeShort(0X7E7E); out.writeBytes(data); out.writeBytes(Crc16Util.getCrc(data)); out.writeShort(0X7E7D); } }
解码器
import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import java.util.List;
public class Decoder extends ByteToMessageDecoder { private final int BASE_LENGTH = 49; private final byte HEAD_DATA1 = 0x7E; private final byte HEAD_DATA2 &#