gpt4 book ai didi

python - 如何在python中解析来自套接字的二进制数据?

转载 作者:行者123 更新时间:2023-12-03 11:56:05 25 4
gpt4 key购买 nike

我目前正在从事一个需要与微硬蜂窝调制解调器 IPn3G 通信的项目。我将调制解调器设置为通过 TCP 向我的计算机发送消息,我可以在套接字中接收消息。

消息看起来像这样:

���������DKReadyCANRogersWirelessInc. Home354626030393530302720391029547

现在,我可以识别其中的一些字段,例如 Status 或 Carrierinfo 以及最后的 imei 和 imsi。

我的问题是,我如何解析看起来很有趣的东西?我尝试过 struct,但它似乎对我没有多大帮助。

在调制解调器的文档中,我只发现了这个:

modem_event 消息结构:
  • 固定头(固定大小 20 字节)
  • 调制解调器 ID(uint64_t(8 字节))
  • 消息类型掩码(uint8_t(1 字节))
  • 保留
  • 数据包长度(uint16_t(2 字节))
    注意:数据包长度=固定头长度+消息负载长度。

  • 承运人信息:
  • 内容长度 2 BYTES (UINT16_T)
  • RSSI 1 字节 (UINT8_T)
  • 射频频段 2 字节 (UINT16_T)
  • 服务类型 STRING(1-30 字节)
  • channel 号 STRING(1-30 字节)
  • SIM 卡号 STRING(1-30 字节)
  • 电话号码 STRING(1-30 字节)

  • 对我来说,这条信息似乎与它应该是什么不一致。如果有人对如何解决这个问题提出建议,我将非常高兴。

    谢谢

    最佳答案

    Python 有很棒的 struct模块,它允许您打包和解包二进制数据。

    我明白了,您已经尝试过使用它。对于您的设备,我没有文档(去检查一下!),但我可以假设,字符串是空终止的(它们之前没有给出它们的大小)。

    获取消息的字符串部分的大小(从其他字段的大小和数据包长度)并使用 <number>s 将所有字符串读入一个 Python 字符串并拆分它们以找到空字符。

    关于python - 如何在python中解析来自套接字的二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358868/

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