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