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

Android Java:通过套接字接收图像,java,android,image,sockets,outputstream,Java,Android,Image,Sockets,Outputstream,我有一个通过套接字的通信应用程序。 客户端向服务器发送一个映像: ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); OutputStream os; try {

我有一个通过套接字的通信应用程序。 客户端向服务器发送一个映像:

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

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

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

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

这两个对象(发送和接收)都是兼容的,你只需要知道
字节
数组大小,两个位置的大小都必须相同。

好吧,听起来比我想象的容易,但是如果与int计数有关呢?实际上没有什么。它只返回读取的字节数,但您不需要它,调用您将数组存储在
数据
对象中。啊,好的,然后我可以使用Bitmapfactory将其获取到位图,对吗?当然,一旦获得
字节[]
,您可以将其设置为您需要的任何值,
Bitmapfactory
也可以使用它们。