我的情况是,我的Java桌面客户端软件,它使用JSON与用C编写的传统后端系统进行通信(服务器上有一个转换器)只是占用太多带宽,当在卷中部署时字段。
在研究了压缩选项后,我得出的结论是,流行的JSON压缩工具不适合我的情况。它们似乎基于在网络上传递数据库查询结果的场景,这不是我的情况。没有方便的行/列算法可用于轻松压缩。我们的数据更复杂。
因此我们开始使用压缩,Java的DeflaterOutputStream和InflaterInputStream(或者可能是他们的GZIP和ZIP风格)。在C方面,会有类似的东西,可能是我们的服务器运行的RedHat可用的zlib库。
在我介入蠕虫之前,有经验的人能告诉我zlib压缩和Java支持的压缩是如何兼容的吗?一种风格或另一种Java压缩选项比另一种更好吗?比另一个更快?
顺便说一句,协议是双向的。服务器和客户端都使用JSON对消息进行编码,因此双方都需要能够在我的场景中进行压缩和解压缩。 提前谢谢。
答案 0 :(得分:1)
Java中的Deflator,GZIP和ZIP库都使用zlib库来进行实际压缩,因此它们应该完全相同,而不仅仅是兼容。很可能GZIP和ZIP更具可移植性,因为Deflator只是具有较小页眉/页脚的压缩数据