python - python中的网络数据包长度

标签 python string network-programming hex

我正在尝试生成一个数据包 header ,其中包含数据长度。 例如,如果数据长度为5,则十六进制字符串假设为: ‘0500’ 如果是 100,则应该是: ‘6400’ 如果 1050: '1a40' 等等。 有没有一个好的方法可以在 python 中做到这一点? 非常感谢。

最佳答案

使用 struct.pack('<H', ...) 将 int 打包为小端格式字符串中的 2 字节无符号短整型。然后使用 binascii.hexlify 返回字符串的十六进制表示形式:

import struct
import binascii

binascii.hexlify(struct.pack('<H', 1050))
# '1a04'

binascii.hexlify(struct.pack('<H', 100))
# '6400'

binascii.hexlify(struct.pack('<H', 5))
# '0500'

关于python - python中的网络数据包长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541922/

相关文章:

java - 如何检查字符串是否平衡?

javascript - javascript .split (' ' ) 会将逗号留在数组中吗?

networking - 如何使用 UdpSocket 通过特定网络接口(interface)发送?

string - 将字符串类型传递给函数

python - 使用 python 进行网络嗅探

network-programming - UDP广播还是IP组播?

python - TensorFlow 中的延迟加载实现

Python 分组反向引用

当 python 脚本作为 systemd 服务运行时,Python Popen 无法识别 scrapy

python - Django 错误。不能赋值必须是一个实例