日期:2014-05-20  浏览次数:20570 次

socket收到的数据转换问题!!!!急
要求及期望结果:
服务端发送发送一串数据包括1322这个数字及其他类型数据,客户端收到后从字符串转为byte数组,再转为相应数据(1322转为数字)

问题:
发送的数字为1322,客户端收到后从字符串转为byte数组,得到数组内容为 -17,-65, -67, 4(小端)

补充:
十进制数  十六进制
1322     0x00 00 04 D1
byte数据大小 -128~127            D1(209>127)
byte[] buffer = recv.getBytes();   //recv为通过socket收到的字符串数据
转换方法: int dx = (int)(buffer[12] | buffer[13] << 8 | buffer[14] << 16 | buffer[15] << 24);
//dx为目标数据,期望值为1322

个人怀疑是应该数据D1问题导致后续数据全部出错,但有不知道怎么改。。。
android;Java; 数据

------解决方案--------------------
首先感觉楼主的这个做法有点问题,一般传输的都是byte[],而楼主接收到了字符串转为byte[]再转回来,有这必要么?
你发送数字是1322,格式是什么?int还是String?
最后,我猜测楼主是想转成16进制的字符串传输之后再转成byte再读是吧?
参考我的http://blog.csdn.net/rzleilei/article/details/9968043吧
里面有详细的转换方法。