怎么用socket发送byte数组

2024-11-20 17:19:38
推荐回答(2个)
回答1:

客户端:
private Socket socket;
private DataOutputStream out;
out = new DataOutputStream(socket.getOutputStream());
byte[] bytes = { 0x03,0x02,0x01 };
out.write(bytes);
服务器端:
private Socket clientSocket;
private DataInputStream in;
in = new DataInputStream(clientSocket.getInputStream());
//定义一个byte数组用来存放读取到的数据,byte数组的长度要足够大。
byte[] bytes =new byte[100];
in.read(bytes);//写入byte数组中。再依次读取出来即可。
-----------------------
String string=new String(byte,off,length);
将byte数组中从第off个开始的length个长度的字节转化为string型。
new String(byte)是将整个byte数组转化为string型。
上面的DataOutputStream传输的流以字节的形式存放到了byte数组,再利用new String方法就可以将其转化为string型了。利用PrintWriter相对于繁琐,封装了很多方法在byte和string之间转化不便。

回答2:

int类型转bytepublic static byte[] int2byte(int res) {byte[] targets = new byte[4];targets[0] = (byte) (res & 0xff);// 最低位 targets[1] = (byte) ((res >> 8) & 0xff);// 次低位 targets[2] = (byte) ((res >> 16) & 0xff);// 次高位 targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。 return targets; } char转byte应该可以强转吧然后用System.arraycopy(...)方法把int转换的byte和强转的byte写进你的data里面然后通过socket的write()方法写过去服务器就收到了