python 中的网络数据包长度
network packet lengths in python
我正在尝试生成一个包头,其中包含数据长度。
例如,如果数据长度为 5,则十六进制字符串假定为:
'0500'
如果它是 100,它应该是:
'6400'
如果 1050:
'1a40'
等等。
在 python 中有没有好的方法来做到这一点?
非常感谢。
使用struct.pack('<H', ...)
to pack the int as a 2-byte unsigned short in a string in little-endian format. Then use binascii.hexlify
到return字符串的十六进制表示:
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'
我正在尝试生成一个包头,其中包含数据长度。 例如,如果数据长度为 5,则十六进制字符串假定为: '0500' 如果它是 100,它应该是: '6400' 如果 1050: '1a40' 等等。 在 python 中有没有好的方法来做到这一点? 非常感谢。
使用struct.pack('<H', ...)
to pack the int as a 2-byte unsigned short in a string in little-endian format. Then use binascii.hexlify
到return字符串的十六进制表示:
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'