Juro q nesse monte de post eu nao li xD []'s
2008/12/7 Flavio Costa <[EMAIL PROTECTED]> > Eww! API proprietaria não é recomendada. > > Essa solução de utilizar 2 ServerSockets separados foi exatemente o que eu > falei a algumas mensagens atrás. > > 2008/12/7 Peter P. Lupo <[EMAIL PROTECTED]> > > Você não conseguiria abrir duas conexões na mesma porta ao mesmo tempo de >> qualquer forma. >> >> Vc tb pode encode a imagem num array de bytes e decode depois... >> >> >> http://java.sun.com/j2se/1.5.0/docs/guide/2d/api-jpeg/com/sun/image/codec/jpeg/JPEGCodec.html >> http://www.guj.com.br/posts/list/99112.java >> >> >> 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/12/7 Pedro Philippe Rosanes <[EMAIL PROTECTED]> >> >>> Na verdade o problema é o mesmo to anterior. >>> >>> Como bufferedImage não é serializavel, nao podemos enviar uma >>> bufferedImage por um ObjectOutputStream(socket.getOutputStream). >>> Então temos de usar ImageIO.write( socket.getOutputStream ). >>> Mas, já temos uma instancia que usa esse socket.getOutputStream, e nao >>> podemos ter 2 instancias diferentes que usam o mesmo stream. >>> Por isso da erro no projeto verdadeiro, mas nao da erro no projeto a >>> parte. >>> >>> Uma solucao que pensei foi criar uma conexão só para envio de imagens e >>> outra só para o envio de informações da urna. >>> Para isso teria de identificar de alguma forma para o servidor e para o >>> cliente qual conexão esta sendo feito. Então pensei em usar duas portas >>> diferentes, assim teria um ServerSocket para cada porta, e consequentemente >>> para cada tipo de conexao. >>> Existe problema em usar portas diferentes ? >>> >>> >>> Zaedy Sayão escreveu: >>> >>> Entao, se vira nos 30.....rsrs >>> >>> Ainda nao entendi pq ta dando problema na hora de colocar tudo junto..... >>> >>> Lanca alguma excecao? Viu se tem processo nao encerrado? >>> >>> []'s >>> >>> 2008/12/6 Felipe Ruiz <[EMAIL PROTECTED]> >>> >>>> >>>> O restante já está pronto. Só falta isso. >>>> >>>> On 6 dez, 14:07, "Zaedy Sayão" <[EMAIL PROTECTED]> wrote: >>>> > Cara, >>>> > >>>> > se a aplicacao em separada funciona nao tem pq nao funcionar no seu >>>> projeto >>>> > todo. >>>> > Vc nao ta sabendo readaptar ela. >>>> > >>>> > Se nao conseguir deixei separado, mas o correto eh deixar junto e vc >>>> deve >>>> > perder algo nisso, mas se nao conseguir, fazer o q :( >>>> > >>>> > Se atenha primeiro em acabar o restante e depois se prenda nisso, pq >>>> tem >>>> > pouco tempo. >>>> > De certa forma, vc vai ter atendido ao requisito da foto. >>>> > >>>> > []'s >>>> > >>>> > 2008/12/6 Flavio Costa <[EMAIL PROTECTED]> >>>> > >>>> > > Existe alguma exceção que é disparada quando, no projeto de verdade, >>>> a >>>> > > imagem não consegue ser transferida? >>>> > > O que acontece de fato? A transferência nunca termina? >>>> > >>>> > > 2008/12/6 Felipe Ruiz <[EMAIL PROTECTED]> >>>> > >>>> > >> O aplicativo que consegue enviar a imagem foi feito só pra enviar a >>>> > >> imagem. Quando eu o fiz, como eu não sabia se ia funcionar ou não, >>>> fiz >>>> > >> em um projeto separado para não estragar o original. Na verdade ele >>>> é >>>> > >> uma modificação de um código do GUJ. >>>> > >> Para enviar eu pego o caminho da foto, "leio" o caminho através do >>>> > >> método read() da ImageIO e depois uso o write(), também da ImageIO, >>>> > >> para escrever num DataOutputStream - fazendo new DataOutputStream >>>> > >> (socket.getOutputStream()). Para receber eu crio uma InputStream >>>> > >> (socket.getInputStream()), uso o método read() da ImageIO pra ler >>>> > >> desse InputStream e depois uso o write() pra "escrever" no HD. >>>> > >> No projeto de "verdade" eu tento fazer a mesma coisa, só que não >>>> > >> adianta. >>>> > >>>> > >> On 6 dez, 00:25, "Flavio Costa" <[EMAIL PROTECTED]> wrote: >>>> > >> > Qual a diferença entre esse "mini" aplicativo *standalone* que >>>> consegue >>>> > >> > enviar a imagem corretamente e a aplicação de "verdade"? >>>> > >> > Vamos supor o seguinte modelo: >>>> > >> > * >>>> > >> > Entidade Candidato:* >>>> > >>>> > >> > - Integer id >>>> > >> > - String nome >>>> > >> > - String partido >>>> > >> > - String foto >>>> > >>>> > >> > Essa propriedade *foto* é apenas o caminho no sistema de arquivos >>>> de >>>> > >> onde a >>>> > >> > foto está guardada (ex: *resources/images/canditato-<id>.jpg*) >>>> > >> > Ao serializar este objeto, você não estará serializando a foto >>>> junto, >>>> > >> logo >>>> > >> > você precisará de outro Socket (e provavelmente outro >>>> ServerSocket no >>>> > >> > servidor) que sirva apenas para transferir *bytes* ou seja, você >>>> irá >>>> > >> > utilizar um *FileInputStream* do lado cliente para ler a imagem e >>>> > >> escrever >>>> > >> > no seu Socket, e do lado servidor este apenas irá escrever a >>>> imagem no >>>> > >> lugar >>>> > >> > adequado (isso talvez iria acarretar a necessidade de *avisar *ao >>>> > >> servidor a >>>> > >> > quem a foto que está sendo transferida pertence)... >>>> > >>>> > >> > Não sei se ficou bem claro, mas resumindo a idéia e não tentar >>>> > >> serializar a >>>> > >> > imagem e sim transferí-la como ela é, *byte a byte*. Note que >>>> existe uma >>>> > >> > grande diferença entre essas duas situações. >>>> > >>>> > >> > []'s >>>> > >>>> > >> > 2008/12/6 Felipe Ruiz <[EMAIL PROTECTED]> >>>> > >>>> > >> > > Quando tem alguma imagem cadastrada ele não consegue ler a >>>> imagem. Eu >>>> > >> > > já tentei usar tanto ObjectInputStream/ObjectOutputStream e >>>> ImageIO >>>> > >> > > pra receber a imagem, mas nenhum dos dois funciona. Ele fica >>>> tentando >>>> > >> > > ler a imagem até dar timeout. >>>> > >>>> > >> > > On 6 dez, 00:06, "Flavio Costa" <[EMAIL PROTECTED]> wrote: >>>> > >> > > > Dá que tipo de merda? >>>> > >> > > > As vezes podemos tentar ajudar a resolver. >>>> > >>>> > >> > > > []'s >>>> > >>>> > >> > > > 2008/12/5 Felipe Ruiz <[EMAIL PROTECTED]> >>>> > >>>> > >> > > > > Outra dúvida. Na hora de enviar as imagens do servidor pro >>>> > >> cliente, >>>> > >> > > > > quando tento fazer isso no projeto dá merda. Porém, se eu >>>> faço em >>>> > >> um >>>> > >> > > > > projeto separado eu consigo. Na hora de apresentar eu posso >>>> ter um >>>> > >> > > > > programa auxiliar só pra enviar as imagens rodando? >>>> > >>>> > >> > > > > On 30 nov, 16:28, "Flavio Costa" <[EMAIL PROTECTED]> >>>> wrote: >>>> > >> > > > > > 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.caesse >>>> > >> > > > > 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 >>>> > >>>> > ... >>>> > >>>> > mais » >>>> >>>> >>> >>> >>> -- >>> Zaedy Dantas Sayão >>> Graduando em Ciência da Computação DCC/UFRJ >>> http://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] --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
