gpt4 book ai didi

python - struct.pack() 对网络数据包做了什么

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:36 25 4
gpt4 key购买 nike

python官方文档提到'struct'模块用于Python和二进制数据结构之间的转换。这里的二进制数据结构指的是什么?据我了解,数据结构是否指网络相关 C 函数中定义的数据包结构?

struct.pack(fmt,v1,v2) 是否构建了格式为 fmt 的字段 v1、v2 的 C 等效结构?例如,如果我正在构建一个 Ip 数据包,我的 fmt 是 IP header ,值是 ip header 字段?我指的是 this example同时了解如何构建网络数据包。

最佳答案

二进制数据结构是指数据在内存中的布局。 Python 的对象比简单的 C struct 复杂得多。 Python 对象中有大量的 header 数据,这使得 Python 解释器可以更轻松地完成常见任务。

您的解释基本正确。另一个需要注意的重要事项是我们指定了一个特定的字节顺序,它可能与标准 C 结构使用的字节顺序相同也可能不同(这取决于您的机器架构)。

关于python - struct.pack() 对网络数据包做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122069/

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