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