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/ > > 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 > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
