我正在使用Python 2.7.6 ctypes struct:
class TestStruct(Structure):
_fields_=[
("ValueA",c_int),
("StringA",c_char*9)
]
我从udp获得这样的数据:
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.bind((self.__ip,self.__port))
print("Starting Receiving......")
while True:
try:
(data,addr) = sock.recvfrom(1024)
t = cast( data, POINTER(TestStruct))
print t.ValueA
#print(data[0])
#print(type(data))
except Exception,ex:
print ex
break
正如你所看到的,我正在使用“强制转换”,但它转换的是类型如下:“ main .LP_TestStruct”。
我想得到的是TestStruct对象,我应该使用什么功能? 谢谢!
答案 0 :(得分:1)
您可以t.contents
获取指针指向的对象(TestStruct)。但我想你最好还是使用Python的struct
模块(就像@eryksun提到的那样)。