我目前正在从事一个需要与微硬蜂窝调制解调器 IPn3G 通信的项目。我将调制解调器设置为通过 TCP 向我的计算机发送消息,我可以在套接字中接收消息。
消息看起来像这样:
���������DKReadyCANRogersWirelessInc. Home354626030393530302720391029547
现在,我可以识别其中的一些字段,例如 Status 或 Carrierinfo 以及最后的 imei 和 imsi。
我的问题是,我如何解析看起来很有趣的东西?我尝试过 struct,但它似乎对我没有多大帮助。
在调制解调器的文档中,我只发现了这个:
modem_event 消息结构:
注意:数据包长度=固定头长度+消息负载长度。
承运人信息:
对我来说,这条信息似乎与它应该是什么不一致。如果有人对如何解决这个问题提出建议,我将非常高兴。
谢谢
最佳答案
Python 有很棒的 struct模块,它允许您打包和解包二进制数据。
我明白了,您已经尝试过使用它。对于您的设备,我没有文档(去检查一下!),但我可以假设,字符串是空终止的(它们之前没有给出它们的大小)。
获取消息的字符串部分的大小(从其他字段的大小和数据包长度)并使用 <number>s
将所有字符串读入一个 Python 字符串并拆分它们以找到空字符。
关于python - 如何在python中解析来自套接字的二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358868/