python的struct模块
1、实际简单的来理解就是bytes是网络传输时所用的数据类型。struct函数可以将python当中的数据类型(str,float)转换为bytes进行网络传输。
2、其次就时在进行tcp协议的时候,能够解决粘包现象,简单理解就是,tcp协议在网络传输较快,会导致粘包现象。而struct模块相当于在传输字节的过程当中有一个约定,分为报头和报文,报头来约束后面报文的格式。
3、函数
- struct.
pack(fmt, v1, v2, ...)
根据指定的格式fmt将值v1, v2打包成字节对象 - struct.
pack_into(fmt, buf, offset, v1, v2, ...)
按偏移量 offset 根据指定的格式fmt将值v1, v2打包成字节对象并写入缓冲区 - struct.
unpack(fmt, buf)
根据格式 fmt 从缓冲区解压出数据,以 tuple 的形式返回。
缓冲区的大小(以字节为单位)必须与格式所需的大小相匹配,如calcsize()所示。 - struct.
unpack_from(fmt, buf, offset=0)
根据格式字符串格式从位置偏移处开始从缓冲区解包。
缓冲区的大小(以字节为单位,减去偏移量)必须至少为格式所需的大小,如calcsize()所示 - struct.
iter_unpack(fmt, buf)
根据格式字符串格式从缓冲区缓冲区迭代解压缩。此函数返回一个迭代器,它将从缓冲区读取大小相同的块,直到其所有内容都被消耗掉。缓冲区的大小(以字节为单位)必须是格式所需大小的倍数,如calcsize()所示。
每次迭代都会产生格式字符串指定的元组 - struct.
calcsize(fmt)

浙公网安备 33010602011771号