如何将压缩字符串从Java传输到C#

时间:2011-03-03 08:11:47

标签: c# java .net compression

我有一个用Java编写的服务器和一个用C#编写的客户端。它们通过XMPP进行交互并相互发送消息。消息是XML,其中一些可能非常大。我正在考虑压缩数据,但我想知道在技术上做什么是最好的方法,因为我在Java中压缩并在C#中解压缩。

显然我需要将压缩缓冲区转换为BASE64,传输它,解码BASE64然后解压缩。我应该使用JDK和.NET中的哪些工具来压缩/解压缩数据?

3 个答案:

答案 0 :(得分:5)

在.NET中,您可以使用System.IO.Compression.GZipStream

在Java中java.util.zip.GZIPOutPutStream似乎适合压缩任务。

修改
另一种选择可能是7-zip。 c#和Java都有SDK

编辑2:
关于“XMPP压缩”的快速Google表明XMPP本身支持stream compression。这将压缩您的整个通信,并且不需要您对BASE64编码您的压缩数据。这听起来更像是一种更有效,更兼容的压缩数据的方式,而不仅仅是压缩有效负载。

答案 1 :(得分:1)

您可以使用像ZIP这样的常用算法,这两种语言都有足够的库 - 它们也只在内存中工作,即没有文件系统。

对于C#,我可以推荐:http://www.sharpdevelop.net/OpenSource/SharpZipLib/

答案 2 :(得分:0)

听起来像滥用XMPP。我不太清楚,但它可能已经支持压缩的XML / Stream ......

http://xmpp.org/protocols/compress/

另请参阅TLS压缩。