我用android做TCP客户端,TCP/UDP调试工具做服务端,从服务端发送十六进制数据,android用DataInputStream.read(byte[])方法读取后数据就发生了改变。比如发送‘123456’,android解析出来就成了'1245',本来是3个字节的数据,android返回读取数据的长度却变成了2个字节,实在是不知道怎么回事!!代码如下:
InputStream in=client.getInputStream();
DataInputStream ins = new DataInputStream(in);
while (true) {
//content=new byte[1024];
if (!client.isClosed()) {
if (client.isConnected()) {
if (!client.isInputShutdown()) {
byte[] content=new byte[40];
while((a=ins.read(content)) !=-1) { //读取数据 ,存放到数组content中
Message msg=new Message();
msg.what=a;
msg.obj=content;
mHandler.sendMessage(msg);
}
}
}
}
}
}