python创建tcp的数据包,使用struct包可以很方便的构造数据,但是问题是有些包头,是直接指定的8位字节,比如协议号。如果使用struct包构造,数值类的都是16位的。
探索了很久发现,可以使用bytearray结构进行构造8位的数据。
如下数据构造了一个前面是3个8位的数据,后面是正常的字符的包。
prime_numbers = [2, 11, 2]
byte_array = bytearray(prime_numbers)
#转换字符
message = (b'0',self.username)
s = struct.Struct('c9s')
message_b = s.pack(*message)
bb1 = bytearray(message_b)
dd= byte_array + bb1
网友评论