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

时间:2014-02-23 20:28:27

标签: java android image sockets outputstream

我有通过套接字的通信应用程序。 客户端将图像发送到服务器:

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();

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

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

但是如何“解码”服务器端的字节[]?

1 个答案:

答案 0 :(得分:1)

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

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

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