在mina中解析报文为十六进制字符串

来源:互联网 发布:mac字体切换快捷方式 编辑:程序博客网 时间:2024/06/16 06:41

在mina的messageReceived中接收客户端的消息,并解析消息。

private static class MsgServerHandler extends IoHandlerAdapter{     @Override     public void messageReceived(IoSession session, Object message) throws Exception {            super.messageReceived(session, message);           // 将Object类型的message转换为十六进制的字符串报文           String hexText = parseMessage(message);           System.out.println("报文:" + hexText);     }}
        /**         * 将Object类型的message转换为十六进制的字符串报文         * @param message         * @return         */        private String parseMessage(Object message) {            IoBuffer buf = (IoBuffer) message;             IoBuffer.allocate(1024);            //长度超过会自动翻倍增长            buf.setAutoExpand(true);            ByteBuffer bf = buf.buf();              byte[] tmpBuffer = new byte[bf.limit()];              bf.get(tmpBuffer);             String result = "";            for(int   i=0;   i <tmpBuffer.length;   i++)   {                 //转换16进制                String getM = Integer.toHexString(tmpBuffer[i] & 0xFF)+"";                if(getM.length()<2){                    getM="0"+getM;                }                result+=getM+" ";            }            return result;        }

打印结果:

报文:68 31 00 31 00 68 C9 90-05 28 00 00 02 77 00 00 04 00 03 16 
原创粉丝点击