使用定时器发送心跳 存在bug

This commit is contained in:
2024-10-09 09:28:57 +08:00
parent 3d92652201
commit 3e4d145920

View File

@@ -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()