me encontré con este artículo sobre sencilla servidor proxy implementado en Java:compresión y descompresión de arroyos
http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm
El código simplemente consigue un cierto flujo desde el cliente, después lo envía al servidor y después de dicha corriente de el servidor y envía la respuesta al cliente. Lo que me gustaría hacer es comprimir estos flujos antes de enviarlos y descomprimirlos después de recibirlos.
Encontré la clase GZIPInputStream
pero no estoy seguro de cómo usarla y lo que encontré en Internet no me ayudó. O no entendí tanto o no fue una buena solución para mí.
Mi idea es también que pero no estoy seguro de si es aceptable:
final InputStream streamFromClient = client.getInputStream();
final OutputStream streamToClient = client.getOutputStream();
final InputStream streamFromServer = server.getInputStream();
final OutputStream streamToServer = server.getOutputStream();
InputStream gzipStream = new GZIPInputStream(streamFromClient);
try
{
while ((bytesRead = gzipStream.read(request)) != -1)
{
streamToServer.write(request, 0, bytesRead);
streamToServer.flush();
}
}
catch (Exception e) {
System.out.println(e);
}
Ahora los datos enviados al servidor debe ser comprimido antes de enviar (pero no estoy seguro de si es una solución correcta) ¿LO ES?
Ahora imagine que el servidor me envía los datos comprimidos. Así esta corriente:
final InputStream streamFromServer = server.getInputStream();
se comprime.
Como puedo descomprimirlo y escribir a los
final OutputStream streamToClient = client.getOutputStream();
Gracias por la ayuda, chicos!
publicación cruzada: [java-forums.org - compress-decompress-streams] (http://www.java-forums.org/new-java/51442-compress-decompress-streams.html) –