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

Responder a