[英]Android - Read tcp socket array bytes
我有一个使用Modbus通讯的开发板,我想与Android智能手机建立连接。 对于jamod库,它不会创建连接,因此我使用了标准的tcp套接字。 通过这种方式,我可以创建连接,并且可以将字节数组发送到板上。 当我想阅读董事会的答复时,这个问题就产生了。
这是代码:
byte[] asdo = {(byte)0x01, (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0xff, (byte)0xff};
DataOutputStream scrittura = new DataOutputStream(socket.getOutputStream());
scrittura.flush();
scrittura.write(asdo);
scrittura.flush();
这段代码进入了我在主线程中调用的线程。 董事会的答复是一个字节数组,如“ asdo”,具有六个十六进制字节。
如何阅读回复并将其转换为字符串以便阅读?
谢谢!
由于您具有byte[]
数据(数组),因此有一种简单的方法将数据直接读取为byte[]
。
InputStream stream = socket.getInputStream();
byte[] data = new byte[30];
int count = stream.read(data);
这将立即读取此内容,并返回读取的出现次数。
如果您事先知道预期答复的大小,则应使用DataInputStream.readFully();
否则为DataInputStream.read(byte[]),
它将返回给您实际读取的字节数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.