Android Java:通过套接字接收图像

Android Java: Receive Image over Socket

我在套接字上有一个通讯应用程序。
客户端将图像发送到服务器:

1
2
3
4
5
6
7
8
ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        OutputStream os;
        try {
            os = MyClient.socket.getOutputStream();
            os.write(byteArray,0,byteArray.length);
            os.flush();

在服务器端,我想接收图像,但此刻它仅显示许多不同的字符。如果客户端只是发送文本,我会收到:

1
2
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
String text = input.readLine();

但是我如何在服务器端"解码"字节[]?


类似于您发送该图像的方式。只需使用如下的InputStream对象:

1
2
3
InputStream stream = socket.getInputStream();
byte[] data = new byte[MAX_SIZE];
int count = stream.read(data);

这两个对象(发送和接收)都是兼容的,您只需要知道byte数组的大小,两个地方的大小必须相同。