socket收到的数据转换问题!!!!急

Richard-Benjamin 2013-10-09 05:07:58
要求及期望结果:
服务端发送发送一串数据包括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问题导致后续数据全部出错,但有不知道怎么改。。。
...全文
205 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Richard-Benjamin 2013-10-09
  • 打赏
  • 举报
回复
首先感觉楼主的这个做法有点问题,一般传输的都是byte[] 额,感谢提醒,脑袋有点晕了,直接用byte[]就可以了。。。。
失落夏天 2013-10-09
  • 打赏
  • 举报
回复
首先感觉楼主的这个做法有点问题,一般传输的都是byte[],而楼主接收到了字符串转为byte[]再转回来,有这必要么? 你发送数字是1322,格式是什么?int还是String? 最后,我猜测楼主是想转成16进制的字符串传输之后再转成byte再读是吧? 参考我的http://blog.csdn.net/rzleilei/article/details/9968043吧 里面有详细的转换方法。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧