Ola … jah estou a um tempo pesquisando sobre o envio de objetos nao serializavel via socket(que nao é possivel) … e encontrei varias soluções … porem nenhuma de fato clara
solução que encontrei … enviar os bytes da imagem porem preciso converter BufferedImage em byte[]
alguem pode me dah uma ajuda?
Obrigado
Você vai ter q acessar o Raster da imagem
Exemplo meu:
int[] raster = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
No caso, eu tava trabalhando com um BufferedImage armazenado em um array de ints (TYPE_INT_RGB), vê qual é o seu e dá o cast correto.
isso certo?
byte[] raster = ((DataBufferByte)image.getRaster().getDataBuffer()).getData();
acontece esse erro>>
java.lang.ClassCastException: java.awt.image.DataBufferInt cannot be cast to java.awt.image.DataBufferByte
Seu BufferedImage é armazenado em um array de ints
O tipo de armazenamento vc escolhe quando dá um new BufferedImage
Mas como vc só quer enviar ele pelo socket nem precisa se preocupar com isso, usa os metodos de ImageIO 
ImageIO.write(RenderedImage im, String formatName, OutputStream output);
ImageIO.read(InputStream input)
RenderedImage é sua imagem
OutputStream e InputStream vc pega eles no Socket
formatName acho q é a String contendo o formato no qual você quer escrever a imagem, testa “JPG”, “JPEG”, “PNG”, “BMP”…
O qu vejo o pessoal fazer bastante é gerar um arquivo de imagem temporário…Encodar esse arquivo comprimido para JPEG(tem classes e métodos no Java padrão pra isso), obter os bytes desse arquivo, enviar esse bytes e recirar o arquivo do outro lado…
Fica bem rápido até…Vi um sistema com tela remota (tipo VNC) ser implmentado assim…
entao pensei nisso … em criar um arquivo temporario no cliente com essa imagem tipo Jpg e enviar os bytes desse arquivo pro servidor onde quero tratar melhor essa imagem …
qnd tiver um tempo implementarei isso … Obrigado a todos!