2012-10-06 372 views
1

我使用發送從我的Java客戶端的整數我的Python服務器:這個' x00 x00 x00 x05'是什麼編碼?

outputStream.writeInt(5); 

和服務器上:

_id = self.request.recv(4) 

我得到:

Name | Type| Value 
_id | str | '\x00\x00\x00\x05' 

我怎麼能解碼這個並將其轉換回Integer?

回答

4

您可以使用Python struct module解碼此:

>>> import struct 
>>> struct.unpack('>i', '\x00\x00\x00\x05') 
(5,) 

>i模式需要一個大端符號整數(4個字節)。

+0

很棒!我在哪裏可以閱讀關於解包的第一個參數的更多信息? 如何決定格式?我需要解壓一個32字節的字符串.. – Danpe

+0

@Danpe:它在[模塊的文檔](http://docs.python.org/library/struct.html#byte-order-size-and-alignment) 。 –

+0

checksum = struct.unpack('> 32s',self.request.recv(32))[0] **錯誤:解壓縮需要長度爲32的字符串參數** – Danpe

相關問題