Problema com Sockets!

Olá pessoal!

Estou com um problema que está me deixando de cabelo em pé!

Seguinte: tenho um applet e um servlet, que conversam entre si via socket. Eu utilizo essa comunicação para troca de mensagens de controle e para troca de imagens capturadas em webcam. Por acaso do destino ou sei lá o que, ele de vez em quando me gera essa exception:

java.io.StreamCorruptedException: invalid stream header

Segue um pequeno trecho de código:

Applet

            	FileInputStream fis = new FileInputStream(imagemOrigem);
	            	
	            	byte[] bytesOut = new byte[fis.available()];
	            	
	            	fis.read(bytesOut);
	            	
	            	ObjectOutputStream objoutputstream = new ObjectOutputStream(ClientSocket.getOutputStream());
	            	
	            	objoutputstream.writeObject(bytesOut);
	            	
	            	objoutputstream.flush();

Servlet

                    	ObjectInputStream streamRecebimento = new ObjectInputStream(client.getInputStream());
                    	
                    	byte image[] = (byte[])streamRecebimento.readObject();

Agradeço desde já pela ajuda!

abs
Fabrício

Para completar mais as informações do erro, cheguei a conclusão que o problema ocorre alternadamente entre funciona/nao funciona, ou seja, uma sim e uma não.

abs

Eu não queria ser chato, mas encapsular diretamente um ObjectInput/OutputStream em um socket não funciona muito bem. Já vi gente ser despedida por causa disso.

Você pode fazer uma coisa como "encapsular um Socket em um DataInput/OutputStream, serializar seus dados (usando ObjectOutputStream/ByteaArrayOutputStream) em um array de bytes, e então mandar os bytes pelo DataOutputStream mandando um indicador de comprimento e então os bytes. "

blza cara… show sua reposta!!

seguinte: vc teria um exemplo ou algum outro tópico que fala dessa forma de trabalho?
sabe como é né, novatão em java é fogo…
iuashua

Obrigado
abs