packet = new DatagramPacket(b,100);
Socket.receive(packet);
b= packet.getData();
System.out.println(b[0]);
System.out.println(b[1]);
System.out.println(b[2]);
System.out.println(b[3]);
System.out.println(b[4]);
System.out.println(b[5]);
System.out.println(b[6]);
System.out.println(b[7]);
System.out.println(b[8]);我接受部分的处理暂时如上所示范程序打印出来的8个字节的数据: -16  6  2  23  14  0  3  -32
 
我用网络调试软件时返回数据是:F0  06  02  17  0E  00  03  E0请教该如何处理,才能和网络调试助手一样返回正确的值呢???

解决方案 »

  1.   

    byte[] bytes = {-16, 6, 2, 23, 14, 0, 3, -32};
    StringBuffer sb = new StringBuffer();
    for(byte b : bytes) {
      sb.append(String.format("%02X ", b));
    }
    String str = sb.toString().trim();
    System.out.println(str);
      

  2.   

    你的方法我没试我已经搞好了 呵呵  分还是全部给你, 热心啊 呵呵
    //接受返回数据部分

    packet = new DatagramPacket(RecData,1024);
    Socket.receive(packet);
    RecData= packet.getData();
    System.out.println("Receive" + packet.getAddress());

    for(int i=0;i<8;i++)
    {
    String hex=Integer.toHexString(RecData[i] & 0xFF);
    //返回的数据转换为16进制数,取低8位

    if (hex.length()==1)
    {
    hex="0"+hex;
    //返回的数据若高位位为“0”,则补“0”
    }

    System.out.print(hex.toUpperCase() +" ");
    //返回的数据转换为大写,并输出

    }
    System.out.println("");