diff --git a/target_server.py b/target_server.py index 341811c..f78613c 100644 --- a/target_server.py +++ b/target_server.py @@ -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()