pack和unpack用法是主要用于解决TCP协议的产生的粘包问题
第一个必须是类型,数值对应的是‘i‘, 第二个是数据的长度
格式:
l_r = conn/sk.unpack(‘i‘, 打包的数据/l_s)[0]
conn/sk.recv(l_r)
第一个必须是打包前的原数据类型,第二个需要解包的数据, 解包后的数据是由长度组成的元组,必须转换取下标为0
'''client.py'''
import struct
a ='123456adsfghvcxaasdfghbvc'
l = len(a)
s = struct.pack('i', l)
print(s)
sk.send(s)
# 结果是:b'\x19\x00\x00\x00'
'''server.py'''
import struct
# l_pack = sk.recv()
# length = struct.unpack('i', l_pack)
length = struct.unpack('i', b'\x19\x00\x00\x00')[0]
print(length)
# 结果是:(25,)
原文:https://www.cnblogs.com/ddzc/p/12394975.html