我是间歇性的python,我使用套接字模块接收市场数据并通过API从Broker应用程序订购数据。我仍然困惑如何编码接收多个数据长度和标题,根据标题信息,我会处理数据。从Socket流服务器接收多个数据长度 - PYTHON3
如何接收多个数据长度并决定用正确的结构格式函数解压缩?
while True:
try:
"""
continously receive data from Server API (stock Market data streaming)
"""
brecvd = self.sock.recv(1024)
self.brecvdsize = len(brecvd)
# Unpack the header for correct struct formate to unpack
unpkr = self.struct.Struct('<lh')
recvd =self.struct.Struct.unpack_from(unpkr, brecvd)
Marketdepth = recvd[0] == 284 and recvd[1] == 26
Indices = recvd[0] == 228 and recvd[1] == 27
Feed = recvd[0] == 384 and recvd[1] == 22
BidOffer = recvd[0] == 145 and recvd[1] == 28
Msg = recvd[0] == 360 and recvd[1] == 99
#Msg to be checked for 260 or 360
if Marketdepth:
self.Marketdepthresponse(brecvd)
Marketdepth = False
elif Indices:
self.Indicesresponse(brecvd)
Indices = False
elif Feed:
self.feedresponse(brecvd)
Feed = False
elif BidOffer:
self.Bidoffer(brecvd)
BidOffer = False
elif Msg:
self.GeneralMsg(brecvd)
Msg = False
else:
Marketdepth = False
Indices = False
Feed = False
BidOffer = False
Msg = False
pass
except Exception as e:
self.errorcount += 1
print('***Run Loop Receive Issue: {0}'.format(str(e)))
我想从你的extream中知道以下知识注意:方法'StartTTAPI'调用并在线程中运行。 如何接收多个数据长度并决定使用正确的结构格式函数解压缩? 频繁地得到Exception'struct.error'as-unpack需要一个长度为xxx的字节对象(对于所有的解包方法) 几分钟后它不会从服务器接收任何数据,但服务器正在流数据 我提醒它没有收到所有数据,而服务器正在收集数据,并且从不抛出任何异常或错误。 –