java如何通过socket发送16进制数据包
已有下位机通过ip转串口映射到ip+端口上去(物理通信没有问题了),现在下位机需要接受客户端发送过去的一串16进制的命令请求,然后返回结果,由于需要做成b/s的模式,所以现在想用java做客户端,请问该如何书写?因为java中在socket中只能传byte的数组;而byte的范围有限(-127~128)对于大的数就会溢出;请问如何解决?
下面是我的代码,请指教:
// 创建输入输出数据流
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
s = new Socket( "192.168.0.11 ", 9707);//需要数据传向的地址端口传输是透明传输由路由器解决不用考虑ip包的打包及解包
dos = new DataOutputStream(s.getOutputStream());
dis = new DataInputStream(s.getInputStream());
//字节数组(需要发送的指令)
byte[] b = new byte[10];
b[0] = (byte) 0xf8;
b[1] = (byte) 0xf9;
b[2] = (byte) 0x0f;
b[3] = (byte) 0xff;
b[4] = (byte) 0x24;
b[5] = (byte) 0x00;
b[6] = (byte) 0xfe;
b[7] = (byte) 0xff;
//System.out.println(b[1]);已经就溢出显示为-7
// 发送数据
dos.write(b);
dos.flush();
------解决方案--------------------使用String發送
在轉換