Я нашел эту статью о простом прокси-сервере, реализованном на JAVA:
http://www.java2s.com/Code/Java/Network -Protocol / Asimpleproxyserver.htm
Код просто получает некоторый поток от клиента, после отправки его на сервер и после того, как он получает поток от сервера и отправляет ответ клиенту. Что я хотел бы сделать, так это сжать эти потоки перед их отправкой и распаковать после их получения.
Я нашел класс GZIPInputStream
, но не знаю, как его использовать, и то, что я нашел в Интернете, мне не помогло.Я либо этого не очень понимал, либо это было не лучшим решением для меня.
Моя идея тоже такая, но я не уверен, что все в порядке:
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);
}
Теперь данные, отправляемые на сервер, должны быть сжаты перед отправкой (но я не уверен, что это правильное решение). ЭТО?
А теперь представьте, что сервер отправляет мне сжатые данные. Итак, этот поток:
final InputStream streamFromServer = server.getInputStream();
сжат.
Как его распаковать и написать в
final OutputStream streamToClient = client.getOutputStream();
Спасибо за помощь, ребята!