-
好比有一個C結構體。
-
解包。經過socket.recv接收到了一個上面的結構體數據,存在字符串buffer中,如今須要把它解析出來,可使用unpack()函數:id, name = struct.unpack("!ic", buffer)。上面的格式字符串中,!表示咱們要使用網絡字節順序解析,由於咱們的數據是從網絡中接收到的,在網絡上傳送的時候它是網絡字節順序的。後面的i表示 一個int的id,c表示一個char的name。
-
打包。就經過一個unpack,如今id, name裏已經保存好咱們的信息了。一樣,也能夠很方便的把本地數據再pack成struct格式。buffer = struct.pack("!ic", id, name)。pack函數就把id, name按照指定的格式轉換成告終構體,buffer 如今是一個字符串(其實是相似於c結構體的字節流),能夠經過 socket.send(buffer )把這個字符串發送出去.
END