java socket 十六进制
java写的socket长连接,要从服务器返回16进制到客户端,要求返回的十六进制为0101000000083DCC我应该怎么处理,进行发送?现在是用的SocketUti...
java写的socket长连接,要从服务器返回16进制到客户端,要求返回的十六进制为
01 01 00 00 00 08 3D CC
我应该怎么处理,进行发送?
现在是用的
SocketUtil.writeStr2Stream(toHexString("0101000000083DCC"), sock.getOutputStream());
其中toHexString方法就是十六进制转换的
已转为数组
byte[] b = new byte[8];
b[0] = (byte) 0x01;
b[1] = (byte) 0x01;
b[2] = (byte) 0x00;
b[3] = (byte) 0x00;
b[4] = (byte) 0x00;
b[5] = (byte) 0x08;
b[6] = (byte) 0x3D;
b[7] = (byte) 0xCC;
DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
dos.write(b);
dos.flush(); 展开
01 01 00 00 00 08 3D CC
我应该怎么处理,进行发送?
现在是用的
SocketUtil.writeStr2Stream(toHexString("0101000000083DCC"), sock.getOutputStream());
其中toHexString方法就是十六进制转换的
已转为数组
byte[] b = new byte[8];
b[0] = (byte) 0x01;
b[1] = (byte) 0x01;
b[2] = (byte) 0x00;
b[3] = (byte) 0x00;
b[4] = (byte) 0x00;
b[5] = (byte) 0x08;
b[6] = (byte) 0x3D;
b[7] = (byte) 0xCC;
DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
dos.write(b);
dos.flush(); 展开
2个回答
展开全部
这是要服务端和客户端双方对接
最好的办法是两端开发都使用相同的工具类。byte2Hex和hex2byte
最好的办法是两端开发都使用相同的工具类。byte2Hex和hex2byte
追问
客户端是一个传感器,不清楚具体使用哪个工具类,我是使用的encodeHex,把字符串变16进制,但是现在还没效果
追答
如果是传感器,那你就不要使用通用的工具类而是自己定制
一种方案是直接找硬件厂家,问他们怎么实现
还有一种方案是多次尝试。
首先你要搞清楚服务器传感器传的是几个字节的
你要知道字节高低位的顺序
反传时要求的是字节还是16进制字符串
你不搞清楚双方对接的规范是没法入手的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询