package com.js.kbt.socket; import java.util.List; import org.apache.log4j.Logger; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.string.StringDecoder; public class CustomDecoder extends StringDecoder { private static final Logger logger = Logger.getLogger(CustomDecoder.class); @Override protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { String HEXES = "0123456789ABCDEF"; byte[] req = new byte[msg.readableBytes()]; msg.readBytes(req); final StringBuilder hex = new StringBuilder(2 * req.length); logger.info("接收到Data"); for (int i = 0; i < req.length; i++) { byte b = req[i]; hex.append(HEXES.charAt((b & 0xF0) >> 4)) .append(HEXES.charAt((b & 0x0F))); } logger.info("decode="+hex.toString()); out.add(hex.toString()); } }