c++ 中的简单压缩

发布于 2024-10-06 02:34:54 字数 212 浏览 3 评论 0原文

我们有一个 C++ MFC 应用程序和 C# Web 服务。它们通过 HTTP 进行通信,但当它们交换文本数据时,压缩将有很大帮助。但由于某些原因,我们无法使用外部库。

我们基本上需要在一侧压缩字节数组并在另一侧解压缩它。

我们应该使用什么来压缩数据?最好的情况是 MFC/win32 api 中有东西。或者是否有一些最多具有 LGPL 许可证的简单代码可以集成到我们的项目中?

we have a C++ MFC application and C# Web Service. They are communicating over HTTP, but as they are exchanging text data, compression will help a lot. But for some reasons, we can't use an external library.

We basically need to compress a byte array on one side and decompress it on the other side.

What should we use to compress our data? The best scenario would be if there is something in MFC/win32 api. Or is there some simplistic code with at most LGPL license that we could integrate into our project?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

后知后觉 2024-10-13 02:34:54

正如已经说过的,zlib 可能就是您正在寻找的。

其中有几种算法:

  • deflateinflate
  • zlib 本身
  • lzo

更简单的可能是 lzo (我建议传递未压缩的大小),但 zlib 也不是很复杂,并且压缩率可以参数化(速度/大小权衡),这可能是一个优点,具体取决于您的限制。

对于 XML 数据(因为您谈论的是 Web 服务),LZO 给了我大约 4 倍的压缩系数。

As has already been said, the zlib is probably what you are looking for.

There are several algorithms within:

  • The deflate and inflate pair
  • zlib itself
  • lzo

The simpler is probably lzo (I advise to pass the uncompressed size on the side), but zlib isn't very complicated either and the compression rate can be parameterized (speed / size trade off) which can be a plus depending on your constraints.

For XML data (since you were speaking of web services), LZO gave me a ~4x compression factor.

花间憩 2024-10-13 02:34:54

不能直接打开 HTTP 压缩吗? http://en.wikipedia.org/wiki/HTTP_compression

Can't you just switch on HTTP compression? http://en.wikipedia.org/wiki/HTTP_compression

鸩远一方 2024-10-13 02:34:54

zlib 有一个非常自由的许可证

zlib has a very liberal license.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文