Когда ImageIO должен прекратить чтение из InputStream? - PullRequest
1 голос
/ 07 февраля 2012

Я пытаюсь создать сервер, который получает изображение JPG через newtork в Java.

isr = socket.getInputStream();
BufferedImage img = ImageIO.read(isr);

Я хотел бы закончить чтение, но сохранить соединение с сокетом. ImageIO останавливается только когда я закрываю соединение. Он также останавливается, когда я отправляю одно и то же изображение дважды.

1 Ответ

0 голосов
/ 07 февраля 2012

ImageIO.read должен продолжать чтение из входного потока до тех пор, пока не будет получен весь файл, после чего чтение прекращается.В этом случае вызывающий абонент несет ответственность за закрытие входного потока.

Вы не отправляете данные с клиента на сервер, чтобы сообщить, что вы закончили чтение.Просто закройте соединение.

Если сервер отправляет одно и то же изображение дважды или отправляет два разных изображения, необходимо выполнить два подключения к сокету или использовать другой метод для чтения данных.Насколько я знаю, у ImageIO.read нет возможности прочитать два изображения.

...