Enviar imagem por socket?

Ola pessoal!
Eu tenho uma imagem dentro de um BufferedImage.
Como eu faço para enviar ela por um socket para que o programa que receba ela possa mostrar ela no outro lado??

Obrigado

Luiz Bernardo

Socket c = ....
OutputStream out = c.getOutputStream();
out.write(...);

Desenterrando o tópico: pode ser útil para alguém que chegue aqui via google e etc…

Para envia uma imagem por socket é algo relativamente simples. Primeiro você deve criar uma classe cliente e servidora que enviam arrays de bytes (stream). Para saber como fazer isso leiam a seguinte documentação:

http://download.oracle.com/javase/tutorial/networking/datagrams/clientServer.html

Nessa documentação tem as classes QuoteServerThread.java e QuoteClient.java que fazem exatamente o que falei.
Agora para enviar uma imagem basta passar os dados da imagem em uma array de bytes e voalá… lá vai sua imagem via socket.
Para saber como transformar uma Image em um array de bytes vejam o seguinte tópico: http://www.guj.com.br/posts/list/0/58204.java#1169911

Se alguém tiver mais alguma dúvida é so perguntar. Se estiver ao meu alcance eu ajudo o/

Abraço!

  1. O link que você passou é de UDP, não TCP. Cuidado que o Datagrama UDP não dá garantia de entrega e tem um limite pequeno de tamanho;
  2. É bom definir um protocolo na sua aplicação: http://www.guj.com.br/java/136538, ou você não saberá quantos bytes a imagem tem;
  3. Tente não usar JPG em Java. Ele distorce muito a imagem, pois a taxa de compactação do Java é enorme. No lugar, use PNG.
  4. Procure não ressuscitar tópicos antigos.

Certo, entendi Vini. Obrigado mesmo pelas dicas.

Quanto a ressuscitar tópicos antigos eu não entendo muito bem porque tem problema. Eu pelo menos acho bastante ultil trazer uma solução para um tópico que ainda não foi resolvido, mesmo que ele seja antigo =) Bom só to questionado, bem na boa ta Vini =) Qualquer coisa se precisar e\ou achar melhor pode me manda uma mp.

Mais uma vez obrigado pela atenção e ajuda Vini!
Abraço!

O problema é que muita gente lê os primeiros posts do tópico. E aí fica respondendo uma dúvida, ou dando exemplos, para alguém que postou lá em 2004, e muitas vezes nem acessa mais o fórum.
Veja bem, esse não se trata de um tópico de 2010, mas de 2004.

Eu entendo, mas muitas pessoas não pertencentes ao forum usam tais tópicos, pois muitos deles são encontrados via google. Eu mesmo usei o GUJ por quase um ano antes de criar uma conta e começar a participar.

Mas de qualquer forma eu respeito sua decisão de moderado Vini =) Fica tranquilo que eu não vou mais ressuscitar tópicos tão antigos assim. E desculpa qualquer inconveniência que eu tenha causado o/