2011-08-16 11 views
1

我遇到了ctypes綁定的問題,而ctypes文檔讓我的頭部受到一點傷害。有效地將一個ctypes LP_c_ubyte變成一個python'str'

我有一個遠程網絡客戶端發送二進制數據和我正在使用的庫(Mosquitto,用於MQTT消息代理)提供了一種ctypes方法,用於從網絡獲取原始二進制數據。這是一個「LP_c_ubyte」類型。有沒有什麼有效的方法把它變成一個python'str'對象?

我需要一組常規字節用於M2Crypto的解密功能。

pp = ''.join(chr(msg.payload[i]) for i in xrange(msg.payloadlen)) 
clear_text = rsa.private_decrypt(pp, M2Crypto.RSA.pkcs1_padding) 

這很有效,但它很醜。

我可以去改變客戶端到base64首先編碼所有東西,然後unbase64在這一端,但這也似乎是一個解決方法。

有沒有更好的方法?

回答

3

我想這應該做你想要什麼:

import ctypes 
pp = ctypes.string_at(msg.payload, msg.payloadlen) 
相關問題