美文网首页
关于通信数据包中hex格式和明文格式的转化

关于通信数据包中hex格式和明文格式的转化

作者: Mr_J316 | 来源:发表于2019-10-09 08:32 被阅读0次

    发送端

    不勾选hex发送,是将报文数据调用getBytes方法取得字节数组,高方法得到的是ascii码表准换成的十进制数据

    String data = "A1 32";      //要发送的报文
    byte[] bytes = s.getBytes();
    //bytes:{65,49,32,51,50}
    

    勾选hex发送,是将报文数据直接转成字节数组发送

    String s = "A1 32";         //要发送的报文
    String[] ss = s.split(" ");
    byte[] bytes1 = new byte[ss.length];
    for (int i = 0; i < ss.length; i++) {
        bytes1[i] = (byte) Integer.parseInt(ss[i], 16);
    }
    //bytes:{-95,50}
    

    接收端

    以十六进制接收就是将收到的字节数组,逐字节的转换为十六进制显示

    byte[] bytes = {-95, 50};       //接收到的字节数组
    for (byte b : bytes) {
        System.out.println(String.format("%02X", b));
    }
    
    //得到的数据  A1  32
    

    以文本接收就是将收到的字节数组,整体转换为string

    byte[] bytes = {65, 49, 32, 51, 50};    //接收到的字节数组
    System.out.println(new String(bytes));
    //得到的数据  A1  32
    

    相关文章

      网友评论

          本文标题:关于通信数据包中hex格式和明文格式的转化

          本文链接:https://www.haomeiwen.com/subject/xhovuctx.html