Problema lendo/enviando imagens

RenderedImage abcls = (RenderedImage) mini; //Transforma minha BufferedImage em uma RenderedImage. ImageIO.write(abcls,"jpg",envia); //Envia a RenderedImage pelo socket para o destino. envia.flush(); //Obriga o output a enviar todo seu conteúdo.

Como ImageIO pede uma RenderedImage fiz essa transformação, mas nem com Buffered nem agora com a Rendered eu estou conseguindo ler no servidor a imagem.

o comando do servidor, programa que recebe a imagem:

InputStream recebe = s.getInputStream(); //s é o socket. ImageIO.read(recebe);

Retorna um valor nulo então não consigo salvar a imagem no computador, ele passa por isso com o valor nulo e na hora de salvar ele gera a imagem, sem visualização, com 0 bytes.
Alguém pode me ajudar a resolver esse problema?