【发布时间】:2013-01-07 18:25:16
【问题描述】:
我正在使用字节数组来存储从另一台计算机接收到的数据包。
receivedData = new byte[1024];
receivedPacket = new DatagramPacket(receivedData, receivedData.length);
socket.receive(receivedPacket);
receivedData = receivedPacket.getData();
String res = new String(receivedData); // PROBLEM HERE
问题出在最后一行:因为我将 receivedData 声明为长度为 1024 的字节流。所以,最后一行总是会从整个数组中创建一个新字符串,尽管它不知道我到底有多少实际字节已收到。所以,我遇到了令人沮丧的错误:res 没有收到如我所愿。 (因为我收到的实际字节长度不能修复整个数组)
所以,我的问题是:我该如何解决这个问题,我怎么知道我真正收到了多少字节来转换为字符串?
【问题讨论】:
-
最初我认为您可以将receivedPacket放入一个对象中,然后根据转换为byte []的对象的长度创建字节数组。之后创建字符串。