问题描述:
在终端(比如 网络调试助手)与后台进行通信时,通过socket可以建立连接,但是在传输HEX数据时,发现后台通过InputStream只能传输 0x00 - 0x7F的数据,原因是按字节读取时超过一个字节的数据无法解析,此时后台会默认一组数据表示该值(例如 0xEF 0xBF 0xBD)
解决方法:
以DataInputStream代替InputStream;
核心代码:
DataInputStream dataInputStream = new DataInputStream(socket.getInputStream());
byte[] bytes = new byte[1024];//假设每次传输的数据不大于1024字节
int len = dataInputStream.read(bytes);//将接受到的数据存入bytes数组