У меня TCP-клиент и сервер в Java и я хочу отправить байтовый массив с клиента на сервер. Я посылаю байты, используя этот метод:
public void writeBytes(byte[] message, Socket socket) throws IOException {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.write(message);
out.flush();
}
Но я не могу получить их методом readAllBytes
из DataInputStream
/ InputStream
public void readMsg(Socket socket) throws IOException {
DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
System.out.println(in.readAllBytes()); //would be empty
}
Теоретически я может отправить размер байтового массива + сам байтовый массив и прочитать их с помощью метода readFully(size)
. Это будет работать. Но я хочу понять, почему он не работает с методом readAllBytes
.