Evite colocar a GZIPInputStream em torno da sua socket.getInputStream(). 

O que acontece eh que a GZip nao manda tudo assim que voce der o flush ou 
mesmo o close. Ela espera um certo "tamanho" para fazer a compressao e soh 
entao os seus dados serao enviados entre client e servido. 

O que voce deveria fazer eh criar a GZip em torno de ByteArrayInputStream 
(ou OutputStream) e entao pegar o bytearray dela e enviar. Do outro lado da 
conexao voce faz o processo inverso. 

Para comprimir: 

  ObjectOutputStream os = new ObjectOutputStream(new   
GZIPOutputStream(baos)); 
  os.writeObject(object); 
  os.close();//forces a flush 
  byte[] rv = baos.toByteArray(); 

Para descomprimir: 

  ObjectInputStream ois = new ObjectInputStream(new GZIPInputStream(new 
ByteArrayInputStream(compressed))); 
  Object rv = ois.readObject(); 
  ois.close(); 

Precisando de mais detalhes avise. 

Abracos, 
Marcelo Quintella 



----- Original Message ----- 
From: "Rosfran Lins Borges" <[EMAIL PROTECTED]> 
To: <[EMAIL PROTECTED]> 
Sent: Friday, July 12, 2002 8:44 AM 
Subject: RES: [java-list] Problema com Sockets e GZip Streams 



   Você vai precisar colocar um ServerSocket em cada umas das extremidades 
de conexão. Além disso, você deve escolher valores não coincidentes para as 
portas de envio e recebimento. Ou seja, o seu Socket e o seu ServerSocket 
devem operar em portas diferentes na mesma máquina, e a extremidade remota 
deve conectar o seu Socket à porta na qual o ServerSocket opera, e o Socket 
local deve se conectar à porta do ServerSocket remoto. 
   O que deve estar havendo é que houve um conflito nesse mapeamento, tipo, 
o Socket e o ServerSocket estão rodando com a mesma porta, ou então 
aconteceu um engano na hora de conectar o Socket remoto com o ServerSocket 
(ou vice-versa)... 

Rosfran Lins Borges 
Analista de Sistemas - NDS 
[EMAIL PROTECTED] 
Fóton® Informática e Serviços 
Fone: (61) 328 5060 R.: 204 


-----Mensagem original----- 
De: marco [mailto:[EMAIL PROTECTED]] 
Enviada em: quinta-feira, 11 de julho de 2002 14:56 
Para: [EMAIL PROTECTED] 
Assunto: [java-list] Problema com Sockets e GZip Streams 


Olá amigos! 
Estava utilizando um client/server em Java usando objetos serializados. 
Então, pensei em utilizar a GZipOutputStream e a GZIPInputStream para a 
conversa entre o client/server ter o conteúdo comprimido. Utilizei o 
código do site developer da Sun: 

******** 
// write to client 
GZIPOutputStream gzipout = new 
GZIPOutputStream(socket.getOutputStream()); 
ObjectOutputStream oos = new 
ObjectOutputStream(gzipout); 
oos.writeObject(obj); 
gzipout.finish(); 

And, the following segment of code shows how to decompress the objects 
at the client side once received from the server: 

// read from server 
Socket socket = new Socket(remoteServerIP, PORT); 
GZIPInputStream gzipin = new 
GZIPInputStream(socket.getInputStream()); 
ObjectInputStream ois = new ObjectInputStream(gzipin); 
Object o = ois.readObject(); 
*************** 

Até aí, nenhum problema. 
Tentei então fazer a conversa bidirecional ao invés de somente 
unidirecional. Mas então o client e o server compilam, mas na hora de 
rodar não consigo resposta. É só fazer o programa voltar a ser 
unidirecional que funciona. O que está havendo de errado? 
Se alguém quiser ver o código inteiro, está em: 
http://www.grad.icmc.usp.br/~rael/prog/client_server.zip 



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm 
regras da lista: http://www.soujava.org.br/regras.htm 
historico: http://www.mail-archive.com/java-list%40soujava.org.br 
para sair da lista: envie email para [EMAIL PROTECTED] 
------------------------------------------------------------------------- 

------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm 
regras da lista: http://www.soujava.org.br/regras.htm 
historico: http://www.mail-archive.com/java-list%40soujava.org.br 
para sair da lista: envie email para [EMAIL PROTECTED] 
------------------------------------------------------------------------- 

_________________________________________________________
Oi! Você quer um iG-mail gratuito?
Então clique aqui: http://registro.ig.com.br/


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a