求对 结构体 固定压缩率 的算法
时间:2011-10-01
来源:互联网
TMyrecord = packed record
mhByte1: Byte;
mhByte2: Byte;
mhByte3: Byte;
mhArryData: array[0..1, 0..256 - 1] of Byte;
mhArryOtherData: array[0..1, 0..128 - 1] of Byte;
mhSmallint1: Smallint;
mhSmallint2: Smallint;
mhTime: TDateTime;
mhmhSmallint3: Smallint;
end;
我客户端要在Internet上用TCP/IP协议每秒实时传输这样一个结构体,我想要一种压缩后能生成固定大小的压缩后的数据buffer数组,然后我定长发送,服务器端接收定长的压缩数据解压还原。
我找了些算法,不是用流,就是经常create,free指针,生成的压缩数据还是不定长的,这样我每次传输还得发一个压缩后的长度,请教有固定压缩率的算法吗?即压缩这样一个结构体后长度一样,保证我定长发送,而且最好不要经常创建,释放内存的,定义成静态内存的为好。谢谢大家了,有差不多的就行。或给我些建议。
作者: wangzh 发布时间: 2011-10-01
作者: pathletboy 发布时间: 2011-10-01
作者: wangzh 发布时间: 2011-10-01
在internet上传输啊,是为了图个小的。得压缩的啊。只是希望压缩数据包的大小是定长的。
定长就是不压缩了,因为可能出现数据压缩率极小,接近0%,实际的压缩率和你数据内容有关,要定长只能遵循最小的压缩率,所以建议你别压缩了。
作者: pathletboy 发布时间: 2011-10-01
作者: wangzh 发布时间: 2011-10-01
作者: iqyely 发布时间: 2011-10-01
这样啊,我以发原数据长度是固定的,能有固定压缩率, 压成定长的算法呢。那象一般网络传输,多数也都压缩吧,我用的Indy 的TCPIP控件,用的writebuffer,没用流。有什么好的解决思路吗,是用压缩的流吗?
不要太害怕流,用WriteBuffer以内存流TMemoryStream为例可以这么发送数据
xxx.WriteBuffer(ms.Memory^, ms.Size);
作者: pathletboy 发布时间: 2011-10-01
作者: sz_haitao 发布时间: 2011-10-02
作者: lhylhy 发布时间: 2011-10-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28