首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

socket收到的数据转换有关问题!

2013-10-11 
socket收到的数据转换问题!!!!急要求及期望结果:服务端发送发送一串数据包括1322这个数字及其他类型数据,

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吧
里面有详细的转换方法。

热点排行