我有一个在端口上发送连续flatbuff数据的服务器,我使用python套接字收集数据并反序列化它们。当我尝试使用dataOut.Id()
访问数据时,它会抛出以下错误消息:
Traceback (most recent call last): File
"/home/user/Flatbuf_data/Read_Flatbuf_Data.py", line 45, in <module>
Id = dataOut.Id() File "/home/user/Flatbuf_data/Trval.py", line 25, in Id
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
File "/usr/local/lib/python3.5/dist-packages/flatbuffers/table.py",
line 37, in Offset
vtable = self.Pos - self.Get(N.SOffsetTFlags, self.Pos) File "/usr/local/lib/python3.5/dist-packages/flatbuffers/table.py", line
93, in Get
return flags.py_type(encode.Get(flags.packer_type, self.Bytes, off)) File
"/usr/local/lib/python3.5/dist-packages/flatbuffers/encode.py", line
26, in Get
return packer_type.unpack_from(memoryview_type(buf), head)[0] struct.error: unpack_from requires a buffer of at least 4 bytes
下面是我正在使用的代码片段,我已经在2.7和;3.6并得到相同的错误
import socket
import Trval # Generated from fbs file. This file is generated with flatc --python <filename>.fbs command
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
data = s.recv(1024) # unsure what value to give, hence given 1024 as example value
time.sleep(1)
print("Connection closed.")
s.close()
byte_Data = bytearray(data) # converting bytes to bytearray type"
dataOut = Trval.Trval.GetRootAsTrval(byte_Data, 0)
Id = dataOut.Id() # Getting error here
print(Id)
我不确定我做错了什么,我正在按照Flatbuffers-Python教程的步骤进行操作。有人能帮我解决这个问题吗
目前没有回答
相关问题 更多 >
编程相关推荐