最近在學習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.)。編程