gpt4 book ai didi

python - 使用Python 2.7/python-lzo 1.11解压缩MiniLZO字符串

转载 作者:行者123 更新时间:2023-12-03 12:08:54 28 4
gpt4 key购买 nike

我正在编写一个Python 2.7程序,该程序通过套接字连接发送和接收数据包,从而与基于第三方TCP/IP的API进行交互。

数据包包括以下部分:

  • 在数据前面插入一个10字节长的 header 。
  • body ;
  • 必须在数据末尾附加预告片。

  • 标题包括有关数据长度和数据类型的信息。整个数据包包括标题,实际数据和尾部。

    压缩方法是MiniLZO。

    我的问题是如何处理数据,尤其是数据包的主体,该主体是用MiniLZO压缩的。

    例如,当我发送这样的请求时:

    bytearray(b'\x01W\x00\x00\x000W\x00\x00\x00')
    <TASK><MESSAGE Type="LogonReq" Session="" Reference="TP1" Product="2">
    </MESSAGE></TASK>
    bytearray(b'\x02')

    服务器回复:

    HEADER: 10 Bytes 

    '\x01\xb1\x00\x00\x001\xae\x00\x00\x00'

    BODY:177 Bytes

    '\x002<TASKREPLY><MESSAGE Type="LogonReqReply" Session="DUH3PRdH"
    ReferencP\x05\x00\x18TP1" Product="2">\r\n<ANSWER Result="1"
    Time@\x01\x00\x1225146" Date="20171028" Mode="P" /></\xcc\x11\x0c>
    </TASKREPLY>\r\n\x11\x00\x00'

    TRAILER:1 Bytes

    '\x02'

    我安装了 python-lzo 1.11软件包,并尝试通过以下方法解压缩主体:

    >>> import lzo
    >>> lzo.decompress(body)

    但它返回此错误:

    Traceback (most recent call last):
    File "<pyshell#1>", line 1, in <module>
    lzo.decompress(body)
    error: Header error - invalid compressed data

    我不知道如何解决这个问题。我试图用Google搜索它,但是似乎关于Python/MiniLZO的信息很少。我不确定是否以错误的方式使用了 lzo包,或者数据最初是否被不正确地压缩。

    最佳答案

    通过反复试验,我发现我需要将压缩字符串的长度传递给decompress函数,以使其正常工作。它是这样的:

    lzo.decompress(body,False,176)

    关于python - 使用Python 2.7/python-lzo 1.11解压缩MiniLZO字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46986496/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com