我有通过套接字的通信应用程序。 客户端将图像发送到服务器:
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();
但是如何“解码”服务器端的字节[]?
答案 0 :(得分:1)
类似于您发送图像的方式。只需使用InputStream
这样的对象:
InputStream stream = socket.getInputStream();
byte[] data = new byte[MAX_SIZE];
int count = stream.read(data);
这两个对象(发送和接收)都是这样兼容的,您只需知道byte
数组大小,两个地方都必须相同。