最近在学习python网络编程这一块,在写简单的socket通讯代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和做用,后来查阅了相关资料大概了解了,在这里作一下简单的总结。python
了解c语言的人,必定会知道struct结构体在c语言中的做用,它定义了一种结构,里面包含不一样类型的数据(int,char,bool等等),方便对某一结构对象进行处理。而在网络通讯当中,大多传递的数据是以二进制流(binary data)存在的。当传递字符串时,没必要担忧太多的问题,而当传递诸如int、char之类的基本数据的时候,就须要有一种机制将某些特定的结构体类型打包成二进制流的字符串而后再网络传输,而接收端也应该能够经过某种机制进行解包还原出原始的结构体数据。python中的struct模块就提供了这样的机制,该模块的主要做用就是对python基本类型值与用python字符串格式表示的C struct类型间的转化(This module performs conversions between Python values and C structs represented as Python strings.)。编程