У меня есть TCP-сервер и клиент в Java. Сервер может отправлять команды Клиенту, Клиент затем выполняет команду, например: отправляет изображение на Сервер.
Я отправляю данные с помощью байтового массива, и это работает.
Но давайте представим, что я хочу отправить изображение и файл отдельно. Как Сервер должен знать, какой правильный байтовый массив? Или если я хочу создать VoiceChat (который должен непрерывно отправлять байтовые массивы) и отдельно отправлять изображение?
То есть мой код отправляет байты:
Клиент. java
public void writeBytes(byte[] bytes, Socket socket) throws IOException {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.write(bytes);
out.flush();
}
Вот мой код для получения и преобразования их в изображение:
Сервер. java
public BufferedImage writeScreenshot(Socket socket, int length) throws IOException {
DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
byte[] buffer = new byte[length];
in.readFully(buffer);
return ImageIO.read(new ByteArrayInputStream(buffer));
}