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