struct模块

struct模块

执行Python值和C结构体之间的转换,从而形成Python字节对象。它使用格式字符串作为底层C结构体的紧凑描述,进而根据这个格式字符串转换成Python值。

 

主要方法:

pack(fmt, v1, v2, ...)  ------ 根据所给的fmt描述的格式将值v1,v2,...转换为一个字符串。

unpack(fmt, bytes)    ------ 根据所给的fmt描述的格式将bytes反向解析出来,返回一个元组。

 

常用fmt字符:

 Format   C Type  Python     字节数
         i(可以打包长度为10的数字)    int     integer          4
        q(可以打包长度为19的数字)    long long     integer          8

 

在python中主要用在 Socket编程里面解决粘包:

在send数据前可以使用Struct对数据包长度进行打包为4或8个字节。

接收端就可以首先读取固定长度的4或8个 包长度字节,从而彻底解决粘包的问题。

posted @ 2017-03-04 22:06  Vincen_shen  阅读(147)  评论(0)    收藏  举报