gpt4 book ai didi

python - 解码十六进制(?)数据包

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:22 27 4
gpt4 key购买 nike

使用 Python 的 rtmplib 绑定(bind)​​并遇到一些问题。

首先,

我有这样的东西:

import librtmp

conn = librtmp.RTMP(...)
conn.connect()

while True:
packet = conn.read_packet().body
print packet

这将打印如下所示的数据包:

example

对我来说这看起来像十六进制,写入文件时我得到 4 个字符字符串,如下所示:

0200 086f 6e42 5744 6f6e 6500 0000 0000
0000 0000 0500 0000 0000 0000 0000 0200
066e 6f74 6963 6500 0000 0000 0000 0000
0502 0003 2a2a 2a02 000a 5072 6f63 6573

所以我的问题是,我怎样才能把它变成一个只有可读文本的真正的字符串(或缓冲区)?我尝试了不同的方法来解码十六进制,但结果以“\x05”结尾。

还值得一提的是,在写入时它包含很多 00。

任何人都知道我怎样才能以一种简单但好的方式实现我之前提出的要求?

提前致谢。

最佳答案

如果您不知道要得到什么,那么将数据保存到文件中并用查看器查看? (例如 od 在 linux 上)。

另外,如果您不知道您将要接收什么数据,那么看看您是否找不到任何 rtmp 在线提供的格式描述。 (我认为因为像 red5 这样的东西存在,所以应该记录下来).. 并且有一些文档 http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/rtmp/pdf/rtmp_specification_1.0.pdf

如果你知道你得到了什么,你可以使用结构内置库解压数据 https://docs.python.org/2/library/struct.html

令我感到惊讶的是,librtmp 并未为您提供高级解析对象。你不可能是第一个想要这样做的人..所以看看其他人是否有一个库来处理这个。

关于python - 解码十六进制(?)数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26668113/

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