ServerSockets não possuem Streams de I/O apenas aceitam conexões e criam
Sockets.
Acho que o Buss me fez lembrar de uma coisa, você está usando um
ObjectInputStream em uma ponta e um ObjectOutputStream do outro lado certo?
Essa idéia de decorar o seu Socket.getInputStream num BufferedInputStream é
boa, vale a pena tentar.

ObjectInputStream in = new ObjectInputStream(new
BufferedInputStream(socket.getInputStream()))

2008/11/30 Peter P. Lupo <[EMAIL PROTECTED]>

>
> Seu socket é um Socket, um ServerSocket, um SSLSocket ou o que?
> Já tentou encapsular num BufferedInputStream antes de passar pro
> ObjectInputStream?
> Se vc estiver usando ServerChannel, por acaso vc setou blocking pra
> false? isto pode causar esta exceção...
> mande o código para algum dos monitores...
>
>
> Peter P. Lupo
> Undergraduating in Computer Science DCC/UFRJ
> MPS.BR Authorized Implementation Practitioner
> Sun Certified Java Associate
> http://pplupo.googlepages.com/
> Cell. +55 (021) 81742487
>
>
>
> 2008/11/30 Bruno Buss <[EMAIL PROTECTED]>:
> > Felipe... acho que você conseguiu ver que uma simples linha, pode
> disparar
> > um efeito em cascata, que lá na décima chamada, ele da um exception...
> foi o
> > que aconteceu com o seu código.
> >
> > Por causa do nível de abstração de java... não interprete tudo como "uma
> > simples linha" ;)
> >
> >
> > Assuma que eu não sei nada em Java.... porque não sei. Mas vou tentar dar
> > meu chute do que está acontecendo.
> >
> > Bem, até onde li a classe ObjectInputStream serve para deserializar
> > dados/objetos antes serializados com a classe ObjectOutputStream.
> > (Totalmente copiado da API:
> > http://java.sun.com/javase/6/docs/api/java/io/ObjectInputStream.html).
> >
> > Bem, suponho então que para transmitir os dados do cliente para o
> servidor,
> > você esteja serializado-os com ObjectOutputStream, conectando ao socket,
> > enviando, recebendo do outro lado (pelo socket.getInputStream()) e
> > deserializando com o ObjectInputStream, cheguei perto até aqui?
> >
> > Vamos ver o que a função que causa o exception faz:
> > "The readStreamHeader method is provided to allow subclasses to read and
> > verify their own stream headers. It reads and verifies the magic number
> and
> > version number. "
> >
> > Então basicamente, ele le o cabeçalho do stream para verificar se esta
> tudo
> > certo.
> >
> >
> >
> > Porém ela está lançando uma StreamCorruptedException, que é lançada
> quando:
> > "if control information in the stream is inconsistent".
> >
> > Logo, está chegando alguma porcaria que não deveria ai.
> > Logo, eu consigo pensar em 2 coisas:
> >
> > a) Este socket está sendo reutilizado? Ou ele pode conter alguma
> "sujeira"
> > ou resíduo de alguma comunicação anterior? Teria como você tentar limpar
> o
> > buffer dele, antes de receber os dados?
> > b) Este socket tem alguma coisa? Talvez por algum motivo, quando o seu
> > ObjectInputStream é inicializado, o socket ainda não tenha recebido
> nenhum
> > dado? Não seria possível antes de inicializar o ObjectInputStream, fazer
> um
> > probe no socket para ver se ele ja tem informação no buffer?
> >
> >
> > 2008/11/30 Zaedy Sayão <[EMAIL PROTECTED]>
> >>
> >> Isso ae pq ate agora eu nao entendi o q vc esta tentando fazer e qual o
> >> problema real.
> >>
> >> Qual a linha nao descreve o problema nem o pq do erro......
> >>
> >> []'s
> >>
> >> 2008/11/30 Flavio Costa <[EMAIL PROTECTED]>
> >>>
> >>> Acho que assim vai ser dificil solucionar algum problema.
> >>> Quem sabe se você postar no pastebin.com ou pastebin.ca esse pedaçõ de
> >>> codigo e passar para a lista ou em separado talvez possamos ajudar.
> >>>
> >>> []'s
> >>>
> >>> 2008/11/30 Felipe Ruiz <[EMAIL PROTECTED]>
> >>>>
> >>>> O que mudou: antes não tinha a linha new ObjectInputStream
> >>>> (socket.getInputStream()). Depois tinha a linha new ObjectInputStream
> >>>> (socket.getInputStream());
> >>>>
> >>>> On 30 nov, 02:38, "Zaedy Sayão" <[EMAIL PROTECTED]> wrote:
> >>>> > Cara,
> >>>> >
> >>>> > explica o q esta tentando fazer, o q mudou pra dar o erro pq assim,
> >>>> > jogando,
> >>>> > eu nao entendi necas :(
> >>>> >
> >>>> > []'s
> >>>> >
> >>>> > 2008/11/29 Pedro Philippe Rosanes <[EMAIL PROTECTED]>
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> > > Só pra avisar que nessa Thread do servidor, já conseguimos
> >>>> > > instanciar um
> >>>> > > BufferedReader e um ObjectOutputStream.
> >>>> > > mas esse ObjectInputStream nao vai de jeito nenhum...
> >>>> >
> >>>> > > Felipe Ruiz escreveu:
> >>>> > > > Estou com problemas agora com socket. Funciona tudo direitinho.
> >>>> > > > Porém,
> >>>> > > > se eu crio um ObjectInputStream(socket.getInputStream()), o
> >>>> > > > eclipse me
> >>>> > > > imprime isso:
> >>>> > > > java.io.StreamCorruptedException: invalid stream header:
> 52656365
> >>>> > > >       at java.io.ObjectInputStream.readStreamHeader(Unknown
> >>>> > > > Source)
> >>>> > > >       at java.io.ObjectInputStream.<init>(Unknown Source)
> >>>> > > >       at
> >>>> > > controle.ThreadConexaoCliente.<init>(ThreadConexaoCliente.java:35)
> >>>> > > >       at
> >>>> > >
> controle.ExecutavelServidor.recebeConexoes(ExecutavelServidor.java:
> >>>> > > > 35)
> >>>> > > >       at
> >>>> > > > controle.ExecutavelServidor.main(ExecutavelServidor.java:23)
> >>>> >
> >>>> > > > ThreadConexaoCliente.java:35 --> aqui é onde está o
> >>>> > > > ObjectInputStream
> >>>> > > > (socket.getInputStream())
> >>>> >
> >>>> > > > Não consegui entender em que uma única linha de código muda
> >>>> > > > tanto...
> >>>> > > > Alguém sabe como consertar?
> >>>> >
> >>>> > > > On 27 nov, 19:12, "Zaedy Sayão" <[EMAIL PROTECTED]> wrote:
> >>>> >
> >>>> > --
> >>>> > Zaedy Dantas Sayão
> >>>> > Graduando em Ciência da Computação DCC/UFRJhttp://
> www.manufato.com.br/
> >>>> > MSN: [EMAIL PROTECTED]
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Flávio Coutinho da Costa
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Zaedy Dantas Sayão
> >> Graduando em Ciência da Computação DCC/UFRJ
> >> http://www.manufato.com.br/
> >> MSN: [EMAIL PROTECTED]
> >>
> >>
> >
> >
> >
> > --
> > Bruno C. Buss
> > http://magoobr.blogspot.com/
> > http://www.dcc.ufrj.br/~brunobuss/<http://www.dcc.ufrj.br/%7Ebrunobuss/>
> >
> > Aluno do DCC - UFRJ - www.dcc.ufrj.br
> >
> > if( ((*node)->valor) < (((*heap)[((*node)->gr)])->valor)) /* WTF?! */
> >
> > "Throughout your life, advance daily, becoming more skillful than
> yesterday,
> > more skillful than today. This is never-ending." - Hagakure
> >
> > >
> >
>
> >
>


-- 
Flávio Coutinho da Costa

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a