1
我試圖將socket.inet_pton返回的16字節Blob數據轉換爲無符號字節的ctypes數組。我的數據結構是這樣的:強制轉換爲Python ctypes數組
class in6_addr(ctypes.Structure): _fields_ = (("Byte", ctypes.c_ubyte * 16),)
而且斑點就是:
data = socket.inet_pton(socket.AF_INET6, "2001::3")
然而,這些嘗試得到錯誤:
sin6 = in6_addr() # TypeError: expected c_ubyte_Array_16 instance, got str sin6.Byte = data # TypeError: cast() argument 2 must be a pointer type, not c_ubyte_Array_16 sin6.Byte = ctypes.cast(data, ctypes.c_ubyte * 16) # TypeError: incompatible types, LP_c_ubyte instance instead of c_ubyte_Array_16 instance sin6.Byte = ctypes.cast(data, ctypes.POINTER(ctypes.c_ubyte))
所有代碼:http://codepad.org/2cjyVXBA
任何想法我需要投入什麼類型?