我在Android和C#上的服务器上有一个客户端应用程序,它们通过套接字进行通信。 根据请求服务器发送图像转换为字节[], ,但如何解码再次在我的设备上的图像?如何从BufferReader获取确切的字节?
我已经发现这个代码:
Bitmap bmp=BitmapFactory.decodeByteArray(b,0,b.length);
image.setImageBitmap(bmp);
下面是客户端的代码部分:
private void connectSocket(String a){
try {
InetAddress serverAddr = InetAddress.getByName("192.168.1.2");
Socket socket = new Socket(serverAddr, 4444);
BufferedReader in = null;
try {
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println(message);
String text = "";
image = (ImageView)findViewById(R.id.imageView1);
while ((text = in.readLine()) != null) {
byte[] b = in.readLine().getBytes();
Bitmap bmp=BitmapFactory.decodeByteArray(b,0,b.length);
image.setImageBitmap(bmp);
}
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
socket.close();
}
} catch (UnknownHostException e) {
Log.e("TCP", "C: UnknownHostException", e);
e.printStackTrace();
} catch (IOException e) {
Log.e("TCP", "C: IOException", e);
e.printStackTrace();
}
}
那么如何得到确切收到字节将它们转换的图像中?
谢谢,我已经找到了解决方案 – 3Gee
@ 3Gee我正在寻找一个类似的解决方案。你能指点我的解决方案吗? – zeeshan
@zeeshan很久以前,我已经在旧代码中进行了一些挖掘,我相信这是解决方案: 'byte [] buffer = new byte [16200]; //从图像数组中提取图像 int size = is.read(buffer); byte [] buffer2 = new byte [size]; (int g = 0; g
3Gee