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] <mailto:[EMAIL PROTECTED]>>
>
>
>     O restante já está pronto. Só falta isso.
>
>     On 6 dez, 14:07, "Zaedy Sayão" <[EMAIL PROTECTED]
>     <mailto:[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]
>     <mailto:[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]
>     <mailto:[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]
>     <mailto:[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]
>     <mailto:[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]
>     <mailto:[EMAIL PROTECTED]>> wrote:
>     > >> > > > Dá que tipo de merda?
>     > >> > > > As vezes podemos tentar ajudar a resolver.
>     >
>     > >> > > > []'s
>     >
>     > >> > > > 2008/12/5 Felipe Ruiz <[EMAIL PROTECTED]
>     <mailto:[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] <mailto:[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]
>     <mailto:[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 <http://MPS.BR> Authorized Implementation
>     Practitioner
>     > >> > > > > > > Sun Certified Java Associate
>     > >> > > > > > >http://pplupo.googlepages.com/
>     > >> > > > > > > Cell. +55 (021) 81742487
>     >
>     > >> > > > > > > 2008/11/30 Bruno Buss <[EMAIL PROTECTED]
>     <mailto:[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]
>     <mailto:[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]
>     <mailto:[EMAIL PROTECTED]>>
>     >
>     > >> > > > > > > >>> Acho que assim vai ser dificil solucionar
>     algum problema.
>     > >> > > > > > > >>> Quem sabe se você postar no pastebin.com
>     <http://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]
>     <mailto:[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] <mailto:[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] <mailto:[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] <mailto:[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
-~----------~----~----~----~------~----~------~--~---

Responder a