压缩套接字发送数据

时间:2010-09-08 04:33:26

标签: c++ c

我正在尝试通过套接字发送大量数据(基本上是转换为字符串的数据记录),这会降低程序其余部分的性能。是否可以使用gzip等压缩数据并在另一端解压缩?

5 个答案:

答案 0 :(得分:2)

是。实现此目的的最简单方法是使用古老的zlib库。

compress()uncompress()实用程序功能可能就是您所追求的目标。

答案 1 :(得分:1)

是的,但压缩和减压也需要付出代价。

您可能需要考虑使用其他进程或线程来处理数据传输;这可能比仅仅压缩更难,但是当数据负载增加n倍时,它会更好地扩展。

答案 2 :(得分:1)

是的,这是可能的。 zlib是一个用于执行此类压缩和解压缩的库。但是,通过以二进制格式而不是字符串序列化数据记录可能会更好。应该提高性能,甚至可能比使用压缩更好。

答案 3 :(得分:0)

当然你可以做到。发送二进制数据时,您必须处理平台的endiannes。

但是,您确定通过压缩发送的数据可以解决性能问题吗?您还将有其他步骤(压缩/解压缩,可能解决endiannes问题)。

考虑如何通过套接字进行通信。您使用同步或异步通信吗?如果你同步读写,那么你可以感受到性能损失......

答案 4 :(得分:0)

您可以使用AdOC库来透明地过载套接字系统调用

http://www.labri.fr/perso/ejeannot/adoc/adoc.html

如果发现它有利可图,它会动态进行压缩。