我收到了很多字节

问题描述

InputStream in = socket.getInputStream();

byte[] content = new byte[2048];

int received = in.read(content,content.length);
System.out.println(received);

使用此代码,我想知道如何仅检索服务器发送给我的字节数。 有人告诉我使用带缓冲区的循环,但是由于我不熟悉该区域,所以我不太明白这意味着什么,有人可以帮我吗?

解决方法

您正在将服务器发送给您的字节数存储在final ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT,true); 变量中。如果要将服务器发送的数据转换为用于调试目的的字符串,则可以这样做:

received

请注意,通常需要多次调用int received = in.read(content,content.length); String messageFromServer = new String(content,received); 才能从服务器接收所有数据,就像使用任何InputStream一样。您可以在此处找到有关使用InputStream和OutputStreams的教程: