我要传的二进制的大小是7499,打印出的数据 length:1024 bytestream.size():7499然后我要把这个保存为图片: int len=dis.available();是这样做吗? 新手就指教!!!
是这样。 length是每次收取的数据,bytestream.size()是已收取的数据总长度。
我重新调试过后得到的还是0、、、、 int len=dis.available(); 这是打出来的东西、、、 length:1024 length:1024 length:848 length:1024 length:424 length:1024 length:424 length:1024 length:683 bytestream.size():7499 Server02 datalength = 0 Server02 data length = 0 Server02 succeed to receive picture!!
这个是我加入你代码的地方: DataInputStream dis = new DataInputStream(socket.getInputStream());
ByteArrayOutputStream bytestream = new ByteArrayOutputStream(); byte[] inputByte = new byte[1024]; int length = 0; while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) { bytestream.write(inputByte, 0, length); System.out.println("length:"+length); } System.out.println("bytestream.size():"+bytestream.size());
int len=dis.available(); 这样应该不会错的吧、、、但是加入之后打印出来的len还是0、、、、
不要int len = dis.available(); 跟 byte[] data = new byte[len];了。 outStream.write(data);改成DataOutputStream dos = new DataOutputStream(outStream); dos.write(bytestream.toByteArray()); dos.flush(); dos.close();
dis = new DataInputStream(socket.getInputStream());
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
byte[] inputByte = new byte[1024];
int length = 0;
while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {
bytestream.write(inputByte, 0, length);
Log.v(TAG, "received " + length + " bytes");
}
Log.v(TAG, "there is " + bytestream.size() + " bytes");
Log.v(TAG, "there is " + bytestream.size() + " bytes");
这两条log打印的是什么?
length:1024
bytestream.size():7499然后我要把这个保存为图片:
int len=dis.available();是这样做吗?
新手就指教!!!
length是每次收取的数据,bytestream.size()是已收取的数据总长度。
int len=dis.available();
这是打出来的东西、、、
length:1024
length:1024
length:848
length:1024
length:424
length:1024
length:424
length:1024
length:683
bytestream.size():7499
Server02 datalength = 0
Server02 data length = 0
Server02 succeed to receive picture!!
DataInputStream dis = new DataInputStream(socket.getInputStream());
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
byte[] inputByte = new byte[1024];
int length = 0;
while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {
bytestream.write(inputByte, 0, length);
System.out.println("length:"+length);
}
System.out.println("bytestream.size():"+bytestream.size());
int len=dis.available();
这样应该不会错的吧、、、但是加入之后打印出来的len还是0、、、、
outStream.write(data);改成DataOutputStream dos = new DataOutputStream(outStream);
dos.write(bytestream.toByteArray());
dos.flush();
dos.close();