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 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/>
> <http://www.dcc.ufrj.br/%7Ebrunobuss/>
> > > <http://www.dcc.ufrj.br/%7Ebrunobuss/>
> > > > > <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
> >
> > > > --
> > > > Flávio Coutinho da Costa
> >
> > --
> > Flávio Coutinho da Costa
> >
>


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

Responder a