CustomDecoder.java 977 B

12345678910111213141516171819202122232425262728293031323334
  1. package com.js.kbt.socket;
  2. import java.util.List;
  3. import org.apache.log4j.Logger;
  4. import io.netty.buffer.ByteBuf;
  5. import io.netty.channel.ChannelHandlerContext;
  6. import io.netty.handler.codec.string.StringDecoder;
  7. public class CustomDecoder extends StringDecoder {
  8. private static final Logger logger = Logger.getLogger(CustomDecoder.class);
  9. @Override
  10. protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
  11. String HEXES = "0123456789ABCDEF";
  12. byte[] req = new byte[msg.readableBytes()];
  13. msg.readBytes(req);
  14. final StringBuilder hex = new StringBuilder(2 * req.length);
  15. logger.info("接收到Data");
  16. for (int i = 0; i < req.length; i++) {
  17. byte b = req[i];
  18. hex.append(HEXES.charAt((b & 0xF0) >> 4))
  19. .append(HEXES.charAt((b & 0x0F)));
  20. }
  21. logger.info("decode="+hex.toString());
  22. out.add(hex.toString());
  23. }
  24. }