通过网络发送的数据的字符串压缩/解压缩[关闭]

2024-03-30

我正在寻找 C# 中的字符串压缩方法,可以在将数据字符串写入网络套接字之前对其运行?我对任何类型的压缩都相当陌生,因此我在这里寻求一些建议/指导。

WHY?

这在运行在服务器上的应用程序中是必需的,该服务器不断地将消息发送到我们的另一台服务器,但是托管应用程序的服务器是根据使用的数据计费的,这是相当昂贵的。移动托管不是一个选择。

所以我需要一个算法/库,它可以有效地(CPU 方面)压缩我们发送的刺消息。我愿意牺牲一些CPU使用率来换取更少的网络数据。

我不确定人们期望什么类型的压缩比,我认为这取决于您发送的字符串消息的类型及其长度。

我正在查看相当短的字符串,平均长度从 100 个字符到 256 个字符不等。有一个奇怪的长度约为 900 个字符。

字符串示例:

žŸKO9404ŸMR4ŸTT8DB3CŸTM08:50:26.253ŸDIVFSV09

这是一个更长的例子:

žŸAC15019ŸCI1602ŸSC7ŸZN001ŸPN01ŸFT7F55ŸCLSGKNetworkŸTP1ŸMR0ŸTT9733EŸIDGPAM01;GPAM02;GPAM03;GPAM05;GPAM04;GPAM06;GPAM07;GPAM08;GPAM09;GPAM10;GPAM02;GPAM03;GPAM04;GPAM05;GPAM06;GPAM07;GPAM08;GPAM09;GPAM10;GPAM01ŸTM09:01:08.858;09:01:09.066;09:01:09.043;09:01:09.044;09:01:09.066;09:01:09.066;09:01:09.065;09:01:09.068;09:01:09.067;09:01:09.067;09:01:50.395;09:01:50.386;09:01:50.386;09:01:50.386;09:01:50.396;09:01:50.384;09:01:50.385;09:01:50.386;09:01:50.386;09:01:50.384ŸTG584C;584C;584C;584C;584C;584C;584C;584C;584C;584C;589F;589F;589F;589F;589F;589F;589F;589F;589F;589F

所以我正在寻找一种可以在发送服务器上压缩,然后在接收服务器上解压缩的解决方案。

我最好的解决方案是什么?


  • LZO 压缩:有关更多信息:http://www.oberhumer.com/opensource/lzo/ http://www.oberhumer.com/opensource/lzo/
  • GZip 压缩:有关更多信息:http://msdn.microsoft.com/tr-tr/library/system.io.compression.gzipstream%28v=vs.110%29.aspx http://msdn.microsoft.com/tr-tr/library/system.io.compression.gzipstream%28v=vs.110%29.aspx
  • 快速 LZ 压缩:有关更多信息:http://www.quicklz.com/index.php http://www.quicklz.com/index.php

用于压缩的 Gzip 示例:

    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    System.IO.Compression.GZipStream sw = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Compress);

    //Compress
    sw.Write ...
    sw.Close();

用于解压缩的 Gzip 示例:

    System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray);
    System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(ms,
        System.IO.Compression.CompressionMode.Decompress);

    //Decompress
    int rByte = sr.Read ...
    sr.Close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过网络发送的数据的字符串压缩/解压缩[关闭] 的相关文章