diff --git a/target_client.py b/target_client.py index 32ed35f..169f3c2 100644 --- a/target_client.py +++ b/target_client.py @@ -30,6 +30,7 @@ _local_server=None +_local_client_lock = threading.Lock() @@ -46,19 +47,25 @@ def send_to(ip,port,data:bytearray): # 关闭指定地址的端口 def close(ip,port): global _local_client + global _local_client_lock + _local_client_lock.acquire() for item in _local_client: if(item[1]==ip and item[2]==port): myprint(f'断开连接 {ip}:{port}') item[0].close() _local_client.remove(item) break + _local_client_lock.release() # 关闭所有 def close_all(): global _local_client + global _local_client_lock + _local_client_lock.acquire() for item in _local_client: item[0].close() _local_client=[] + _local_client_lock.release() myprint('连接列表已清空') diff --git a/target_server.py b/target_server.py index bed442f..427e071 100644 --- a/target_server.py +++ b/target_server.py @@ -38,7 +38,7 @@ LOCAL_SERVER_IP = ("192.168.1.40",22) - +_local_client_lock = threading.Lock() # 发送数据到指定ip地址和端口 @@ -51,6 +51,8 @@ def send_to(ip,port,data:bytearray): # 关闭指定地址的端口 def close(ip,port): global _local_client + global _local_client_lock + _local_client_lock.acquire() for item in _local_client: if(item[1]==ip and item[2]==port): myprint(f"断开连接 {ip}:{port}") @@ -58,14 +60,18 @@ def close(ip,port): # 删除已被关闭的条目 _local_client.remove(item) break + _local_client_lock.release() # 关闭所有 def close_all(): global _local_client + global _local_client_lock + _local_client_lock.acquire() for item in _local_client: item[0].close() # 关闭端口之后把列表置空 _local_client=[] + _local_client_lock.release() myprint('连接列表已清空')