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