如何解决我收到了很多字节
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的教程:
- https://docs.oracle.com/javase/tutorial/essential/io/bytestreams.html-用于读取和写入文件的特定示例,但是套接字没有什么不同。
- http://tutorials.jenkov.com/java-io/inputstream.html-更通用,更详尽的教程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。