使用定时器发送心跳 存在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都会创建一个线程
|
# 每一个connect都会创建一个线程
|
||||||
def local_client_handler(tcp_server:socket,ip,port):
|
def local_client_handler(tcp_server:socket.socket,ip,port):
|
||||||
global _remote_client
|
global _remote_client
|
||||||
global _local_client
|
global _local_client
|
||||||
self_info=(tcp_server,ip,port)
|
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 _remote_client
|
||||||
global _local_client
|
global _local_client
|
||||||
myprint("已连接代理服务器")
|
myprint("已连接代理服务器")
|
||||||
|
timer=threading.Timer(5,remote_keeplive,())
|
||||||
cmd={'device':'server','option':'login'}
|
cmd={'device':'server','option':'login'}
|
||||||
data=pc.encode(json.dumps(cmd).encode('utf-8'),b'default')
|
data=pc.encode(json.dumps(cmd).encode('utf-8'),b'default')
|
||||||
_remote_client.send(data)
|
_remote_client.send(data)
|
||||||
|
timer.start()
|
||||||
recv_data=bytearray()
|
recv_data=bytearray()
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
@@ -123,6 +139,8 @@ def remote_client_handler(tcp_client_1:socket):
|
|||||||
myprint("remote:",str(e))
|
myprint("remote:",str(e))
|
||||||
break
|
break
|
||||||
if recv:
|
if recv:
|
||||||
|
timer.cancel()
|
||||||
|
timer.start()
|
||||||
recv_data+=recv
|
recv_data+=recv
|
||||||
while True:
|
while True:
|
||||||
start=recv_data.find(b'\xff')
|
start=recv_data.find(b'\xff')
|
||||||
@@ -155,6 +173,8 @@ def remote_client_handler(tcp_client_1:socket):
|
|||||||
recv_data=recv_data[end+1:]
|
recv_data=recv_data[end+1:]
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
timer.cancel()
|
||||||
|
timer.join()
|
||||||
tcp_client_1.close()
|
tcp_client_1.close()
|
||||||
myprint("与代理服务器的连接已断开")
|
myprint("与代理服务器的连接已断开")
|
||||||
close_all()
|
close_all()
|
||||||
|
Reference in New Issue
Block a user