我想通过socket向服务器端传送16进制数据包,比如55 00 00 01 08 09 33 01 66 12 00 00 00 00 13 56等,现在有以下问题:
   1,怎么确定你发送的是16进制而不是10进制?
   2,我用byte数组存储这些数据,用PrintWriter来发送。接受时用DataInputStream的read(byte[])接收,可是接收到的数据不对,这怎么解决?
   谢谢。

解决方案 »

  1.   

    1、你只能通过计算机网络发送2进制数据。而2进制数据可以换算成16进制。如果你非要通过编码认为2进制的10001不是17而是11,那只有你自己知道。如果你发送的是字符串“11”,那当然不知道他是多少进制的数了,如果硬要分出个公母,只能说如果数字串中有“ABCDEF”则是16进制。
    2、这是个老问题了,一边是字符流,一边是字节流,当然不对啦。发送也用字节流吧。
      

  2.   

    如果你的文件是存文本的文件,那就好做了,用string类的getBytes()方法就可以转换成字节数组了,这样就很方便你操纵文件了
    如果不是存文本的文件,还是请楼下的给出,非纯文本文件的内容转换成字节数组的方法