如何在分配数组'handsize'的字节大小之前获取字节数,如下所示,因为传入的ByteArray数据以3种不同的大小发送。感谢。
BufferedInputStream bais = new
BufferedInputStream(requestSocket.getInputStream());
DataInputStream datainput = new DataInputStream(bais);
//need to read the number of bytes here before proceeding.
byte[] handsize = new byte[bytesize];
datainput.readFully(handsize);
答案 0 :(得分:3)
您可以使用ByteArrayOutputStream,然后您就不必担心了。
ByteArrayOutputStream out = new ByteArrayOutputStream();
//write data to output stream
byte[] bytes = out.toByteArray();
答案 1 :(得分:0)
没有办法知道套接字上还有多少字节的数据被接收 - 知道这就等于了千里眼。如果您使用自己的协议进行客户端/服务器通信,则可以在发送实际字节数之前将数据的字节数作为整数发送。然后接收方将知道预期的字节数。
答案 2 :(得分:0)
正如已经指出的那样,所述的问题是不可能的。但为什么你需要知道?为什么不在读取数据时将数据存储在可变大小的结构中,如ArrayList?或者甚至可以在阅读时处理它?</ p>