Java android tcp客户端文件接收
我正试图通过套接字将一个文件(具体为png)从python服务器发送到android客户端。我知道我的python服务器正在发送数据,但我不知道如何在android端接收数据。下面是接收文件的代码Java android tcp客户端文件接收,java,android,sockets,Java,Android,Sockets,我正试图通过套接字将一个文件(具体为png)从python服务器发送到android客户端。我知道我的python服务器正在发送数据,但我不知道如何在android端接收数据。下面是接收文件的代码 String path = Environment.getExternalStorageDirectory().toString() +"/tmp/test.png"; try { socket = new Socket("192.168.1.
String path = Environment.getExternalStorageDirectory().toString() +"/tmp/test.png";
try {
socket = new Socket("192.168.1.129", 29877);
is = socket.getInputStream();
out = new FileOutputStream(path);
byte[] temp = new byte[1024];
for(int c = is.read(temp,0,1024); c > 0; c = is.read(temp,0,1024)){
out.write(temp,0,c);
Log.d("debug tag", out.toString());
}
Log.d("debug tag", temp.toString());
Bitmap myBitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
imageView.setImageBitmap(myBitmap);
谢谢您的建议。您正在从套接字中读取1K个数据块,并将它们保存到一个文件中。然后尝试将最后一个块解释为位图。这不管用
保存后从文件中读取图像,或者将其全部缓冲在内存中。您正在从套接字中读取1K个块,并将其保存到文件中。然后尝试将最后一个块解释为位图。这不管用
保存后从文件中读取图像,或将其全部缓冲在内存中。如何将其全部缓冲在内存中?例如?你可以使用像
java.io.ByteArrayOutputStream
wow dude,谢谢你,我真不敢相信我没有意识到我只想读最后一块…愚蠢…非常感谢。我该如何在内存中缓冲它呢?例如?你可以使用像java.io.ByteArrayOutputStream
wow dude,谢谢你,我真不敢相信我没有意识到我只想读最后一段……愚蠢……非常感谢。