复杂:从数据包流zlib解压数据时出错


Complicated: Error uncompressing data from a packet stream zlib

我有一个使用zlib函数压缩的传入流,但我不能告诉压缩数据的结尾,所以我在获取数据时遇到了很多麻烦。

我也有一个源代码片段,它在AS3 flash中被未压缩,这应该足以让我弄清楚,但我在一个损失。

包含两个文件:

http://falazar.com/projects/irnfll/version4/test//stackoverflow/as3_code.as.txthttp://falazar.com/projects/irnfll/version4/test//stackoverflow/bin_data_file

二进制数据的片段,以及我所知道的:

00 00 02 34 2c 02 31 78 5e ed dc cd 6e da 40 a5
21 19 40 f5 f2 c4 b7 e9 18 85 e1 5b 89 66 3d 42
31 95 90 cd 15 74 99 55 37 51 14 59 c9 a8 8c 54

0234似乎是一个大小标记- 564

2c = 44,代码匹配as3 COMMAND_WORLD_DATA,这是ok

0231另一个尺寸标记,总是比上面小3

785e -是zlib压缩最弱压缩的头标记,ZLIB_ENCODING_DEFLATE级别4

后面还有789c,这是另一个更大的压缩块

我需要解压缩这两个文件以便项目继续进行,谢谢你的帮助。

在脚本中也提到了双端转换,我不确定是否需要处理这个问题。

我写了几个脚本来尝试解决这个问题,包括一个php代码片段,它砍掉了结束直到和循环试图解压缩,但没有运气。falazar.com/projects/irnfll/version4/test//stackoverflow/php_test.php.txt

理想的解决方案在php或c#,但任何我能看到的工作将翻译成另一种语言很容易。

(使用免费十六进制编辑器nero查看二进制文件)

你是说zlib。

使用PHP的gzuncompress()从每个zlib头开始(例如789c)