修正缓存函数bug,替换del方法
This commit is contained in:
parent
2c5d8933ba
commit
0212f884c6
23
server.py
23
server.py
@ -106,13 +106,18 @@ def tt_hh(addr,data):
|
|||||||
msgs = cache[ccid]
|
msgs = cache[ccid]
|
||||||
for i in range(len(msgs)):
|
for i in range(len(msgs)):
|
||||||
try:
|
try:
|
||||||
|
# 按缓存先后顺序发送
|
||||||
addr.send(msgs[i])
|
addr.send(msgs[i])
|
||||||
# 发送成功则清除对应缓存数据
|
|
||||||
del cache[ccid][i] # not msgs[i]
|
|
||||||
except:
|
except:
|
||||||
# 异常时退出循环
|
# 异常时退出循环,不用再尝试发送后续msgs
|
||||||
|
# 退出前清空已发送成功的缓存数据
|
||||||
|
# del方法会改变list大小
|
||||||
|
while(i):
|
||||||
|
cache[ccid].pop(0)
|
||||||
|
i = i-1
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def tt_trans(addr,data):
|
def tt_trans(addr,data):
|
||||||
@ -132,12 +137,13 @@ def tt_trans(addr,data):
|
|||||||
msg[-1]=crc
|
msg[-1]=crc
|
||||||
|
|
||||||
if not taddr:
|
if not taddr:
|
||||||
# 未报到匹配的在线终端
|
# 未找到匹配的在线终端
|
||||||
|
|
||||||
#更新缓存
|
#更新缓存
|
||||||
#{tccid1=[msg1,msg2,...],...}
|
#{tccid1=[msg1,msg2,...],...}
|
||||||
cache[tccid].append(msg)
|
cache[tccid].append(msg)
|
||||||
save_cache(cache)
|
save_cache(cache)
|
||||||
|
|
||||||
print("终端未在线或ccid错。")
|
print("终端未在线或ccid错。")
|
||||||
return 0
|
return 0
|
||||||
print("匹配终端:",tccid,"<--->",taddr)
|
print("匹配终端:",tccid,"<--->",taddr)
|
||||||
@ -148,13 +154,14 @@ def tt_trans(addr,data):
|
|||||||
taddr.send(msg)
|
taddr.send(msg)
|
||||||
except Exception:
|
except Exception:
|
||||||
# 发送失败
|
# 发送失败
|
||||||
|
taddr.close()
|
||||||
# 更新pairs,清空对应终端
|
# 更新pairs,清空对应终端
|
||||||
update_pairs(taddr,tccid,1)
|
update_pairs(taddr,tccid,1)
|
||||||
#更新缓存
|
#更新缓存
|
||||||
#{tccid1=[msg1,msg2,...],...}
|
#{tccid1=[msg1,msg2,...],...}
|
||||||
cache[tccid].append(msg)
|
cache[tccid].append(msg)
|
||||||
save_cache(cache)
|
save_cache(cache)
|
||||||
|
|
||||||
print("发送失败,终端可能已掉线。",taddr)
|
print("发送失败,终端可能已掉线。",taddr)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@ -171,10 +178,12 @@ def err_handle(flag,addr):
|
|||||||
|
|
||||||
|
|
||||||
def tt_decode(addr,data):
|
def tt_decode(addr,data):
|
||||||
'''处理收到的数据'''
|
'''处理收到的数据
|
||||||
|
数据正常返回0
|
||||||
|
数据异常返回-1'''
|
||||||
|
|
||||||
|
|
||||||
if data[:5] != b'$TTMS' or len(data) <12:
|
if data[:5] != b'$TTMS' or len(data) <12 or len(data)>200:
|
||||||
# 数据长度不可能小于12,考虑非法接入的可能,主动断开连接
|
# 数据长度不可能小于12,考虑非法接入的可能,主动断开连接
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user