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