使用定时器发送心跳 存在bug
This commit is contained in:
@@ -70,9 +70,23 @@ def close_all():
|
||||
|
||||
|
||||
|
||||
|
||||
# 定时任务
|
||||
def remote_keeplive():
|
||||
cmd={'device':'server','option':'login'}
|
||||
data=pc.encode(json.dumps(cmd).encode('utf-8'),b'default')
|
||||
try:
|
||||
_remote_client.send(data)
|
||||
except Exception as e:
|
||||
myprint(str(e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 本地数据处理,解包,把负载数据发送到本地服务器
|
||||
# 每一个connect都会创建一个线程
|
||||
def local_client_handler(tcp_server:socket,ip,port):
|
||||
def local_client_handler(tcp_server:socket.socket,ip,port):
|
||||
global _remote_client
|
||||
global _local_client
|
||||
self_info=(tcp_server,ip,port)
|
||||
@@ -108,13 +122,15 @@ def local_client_handler(tcp_server:socket,ip,port):
|
||||
|
||||
|
||||
# 远端数据处理,解包,把负载数据发送到本地服务器
|
||||
def remote_client_handler(tcp_client_1:socket):
|
||||
def remote_client_handler(tcp_client_1:socket.socket):
|
||||
global _remote_client
|
||||
global _local_client
|
||||
myprint("已连接代理服务器")
|
||||
timer=threading.Timer(5,remote_keeplive,())
|
||||
cmd={'device':'server','option':'login'}
|
||||
data=pc.encode(json.dumps(cmd).encode('utf-8'),b'default')
|
||||
_remote_client.send(data)
|
||||
timer.start()
|
||||
recv_data=bytearray()
|
||||
while True:
|
||||
try:
|
||||
@@ -123,6 +139,8 @@ def remote_client_handler(tcp_client_1:socket):
|
||||
myprint("remote:",str(e))
|
||||
break
|
||||
if recv:
|
||||
timer.cancel()
|
||||
timer.start()
|
||||
recv_data+=recv
|
||||
while True:
|
||||
start=recv_data.find(b'\xff')
|
||||
@@ -155,6 +173,8 @@ def remote_client_handler(tcp_client_1:socket):
|
||||
recv_data=recv_data[end+1:]
|
||||
else:
|
||||
break
|
||||
timer.cancel()
|
||||
timer.join()
|
||||
tcp_client_1.close()
|
||||
myprint("与代理服务器的连接已断开")
|
||||
close_all()
|
||||
|
Reference in New Issue
Block a user