tôi tìm thấy bài viết này về máy chủ proxy đơn giản thực hiện trong JAVA:nén và giải nén suối
http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm
Mã này chỉ đơn giản được một số dòng từ khách hàng, sau khi gửi nó đến máy chủ và sau khi nó được dòng từ máy chủ và gửi phản hồi cho máy khách. Những gì tôi muốn làm là để nén các dòng này trước khi nó được gửi và giải nén sau khi nó được nhận.
Tôi đã tìm thấy lớp học GZIPInputStream
nhưng tôi không chắc chắn cách sử dụng nó và những gì tôi tìm thấy trên internet đã không giúp tôi. Tôi hoặc không hiểu điều đó quá nhiều hoặc đó không phải là một giải pháp tốt cho tôi.
Ý tưởng của tôi là quá đó nhưng tôi không chắc chắn nếu ok của nó:
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);
}
Bây giờ dữ liệu được gửi đến máy chủ nên được nén trước khi gửi (nhưng tôi không chắc chắn nếu đó là một giải pháp đúng). LÀ NÓ?
Bây giờ hãy tưởng tượng máy chủ gửi cho tôi dữ liệu đã nén. Vì vậy, luồng này:
final InputStream streamFromServer = server.getInputStream();
được nén.
Làm thế nào tôi có thể giải nén nó và viết thư cho
final OutputStream streamToClient = client.getOutputStream();
Thanks for the help, guys!
đăng chéo: [java-forums.org - nén-giải nén luồng] (http://www.java-forums.org/new-java/51442-compress-decompress-streams.html) –