如题。 我用网络调试助手发送如AC 01 00 80 00 4A 53 4E 41 01 0A  的16进制数组到minaTCP Client端。 超过127的位就变成了3F (AC--->3F  80---->3F)        public void messageReceived(IoSession session, Object message) {
try {
byte[] z = message.toString().getBytes();
for (int i = 0; i < z.length; i++) {
System.out.print(String.format("%02X", z[i]) + " ");
}
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}

}
如能才能接收与发送16进制包呢?请大侠指教mina TCPClient 16进制

解决方案 »

  1.   

    127的十六进制是7F吧,这个跟什么进制没什么关系吧,socket传输的时候是以二进制进行传输。
      

  2.   

    1、不设置过滤器
    2、获取:ReciveMessage中
            IoBuffer ioBuffer = (IoBuffer) message;
            System.out.println(ioBuffer.getHexDump());
    3、写入
            String cmd="15 08 01 02 03";
            String[] cmds = cmd.split(" ");
            byte[] aaa = new byte[cmds.length];
            int i = 0;
            for (String b : cmds) {
                if (b.equals("FF")) {
                    aaa[i++] = -1;
                } else {
                    aaa[i++] = Byte.parseByte(b, 16);
                }
            }
            session.write(IoBuffer.wrap(aaa));