Gzip ile sıkıştırılmış formatta socket iletişimi

Htpp üzerinde olduğu gibi socket iletişiminde de daha masrafsiz ve hizli veri iletişimi için gzip formatını kullanabilirsiniz. Bu özellikle text veri iletilişiminde oldukça fayda sağlayacaktır.

Sunucu tarafında aşağıdaki gibi bir sınıfımız var burada verileri okurken GZIPInputStream kullanılıyor.

    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.zip.GZIPInputStream;
     
    public class SunucuOrnek {
      public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("Dinleme Basladi");
        Socket socket = serverSocket.accept();
        System.out.println("Dosya aliniyor");
        GZIPInputStream zip = new GZIPInputStream(socket.getInputStream());
        while (true) {
          int chr;
          chr = zip.read();
          if (chr == -1)
            break;
          System.out.print((char) chr);
        }
      }
    }

Client tarafından veri gönderirken aşağıdaki örneği kullanıyoruz burada da GZIPOutputStream bulunuyor. Her iki tarafında gzip ile alışveriş etmesi gerekiyor.

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.net.Socket;
    import java.util.zip.GZIPOutputStream;
     
    class GondericiOrnek {
      public static void main(String[] args) throws Exception {
        Socket socket = new Socket("127.0.0.1", 9999);
        GZIPOutputStream gzipStream = new GZIPOutputStream(socket.getOutputStream());
        String strLine;
        BufferedReader bufReader = new BufferedReader(new FileReader("c:\\deneme.txt"));
        while (true) {
          try {
            strLine = bufReader.readLine();
            if (strLine == null)
              break;
            strLine = strLine + "\n";
            gzipStream.write(strLine.getBytes(), 0, strLine.length());
          } catch (Exception e) {
            break;
          }
        }
        gzipStream.finish();
        gzipStream.close();
        socket.close();
      }
    }
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>