簡體   English   中英

如何在python中將從udp接收到的數據轉換為ctype結構?

[英]How to convert data which is received from udp to ctype struct in Python?

我正在使用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

如您所見,我使用的是“ cast”,但轉換后的類型是:“ main .LP_TestStruct”。

我想得到的是TestStruct對象,我應該使用什么功能? 謝謝!

您可以執行t.contents以獲取指針指向的對象(TestStruct)。 但是我想您可以為此使用Python的struct模塊,甚至更好(如@eryksun所述)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM