添加互斥锁
This commit is contained in:
@@ -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):
|
def close(ip,port):
|
||||||
global _local_client
|
global _local_client
|
||||||
|
global _local_client_lock
|
||||||
|
_local_client_lock.acquire()
|
||||||
for item in _local_client:
|
for item in _local_client:
|
||||||
if(item[1]==ip and item[2]==port):
|
if(item[1]==ip and item[2]==port):
|
||||||
myprint(f'断开连接 {ip}:{port}')
|
myprint(f'断开连接 {ip}:{port}')
|
||||||
item[0].close()
|
item[0].close()
|
||||||
_local_client.remove(item)
|
_local_client.remove(item)
|
||||||
break
|
break
|
||||||
|
_local_client_lock.release()
|
||||||
|
|
||||||
# 关闭所有
|
# 关闭所有
|
||||||
def close_all():
|
def close_all():
|
||||||
global _local_client
|
global _local_client
|
||||||
|
global _local_client_lock
|
||||||
|
_local_client_lock.acquire()
|
||||||
for item in _local_client:
|
for item in _local_client:
|
||||||
item[0].close()
|
item[0].close()
|
||||||
_local_client=[]
|
_local_client=[]
|
||||||
|
_local_client_lock.release()
|
||||||
myprint('连接列表已清空')
|
myprint('连接列表已清空')
|
||||||
|
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ LOCAL_SERVER_IP = ("192.168.1.40",22)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_local_client_lock = threading.Lock()
|
||||||
|
|
||||||
|
|
||||||
# 发送数据到指定ip地址和端口
|
# 发送数据到指定ip地址和端口
|
||||||
@@ -51,6 +51,8 @@ def send_to(ip,port,data:bytearray):
|
|||||||
# 关闭指定地址的端口
|
# 关闭指定地址的端口
|
||||||
def close(ip,port):
|
def close(ip,port):
|
||||||
global _local_client
|
global _local_client
|
||||||
|
global _local_client_lock
|
||||||
|
_local_client_lock.acquire()
|
||||||
for item in _local_client:
|
for item in _local_client:
|
||||||
if(item[1]==ip and item[2]==port):
|
if(item[1]==ip and item[2]==port):
|
||||||
myprint(f"断开连接 {ip}:{port}")
|
myprint(f"断开连接 {ip}:{port}")
|
||||||
@@ -58,14 +60,18 @@ def close(ip,port):
|
|||||||
# 删除已被关闭的条目
|
# 删除已被关闭的条目
|
||||||
_local_client.remove(item)
|
_local_client.remove(item)
|
||||||
break
|
break
|
||||||
|
_local_client_lock.release()
|
||||||
|
|
||||||
# 关闭所有
|
# 关闭所有
|
||||||
def close_all():
|
def close_all():
|
||||||
global _local_client
|
global _local_client
|
||||||
|
global _local_client_lock
|
||||||
|
_local_client_lock.acquire()
|
||||||
for item in _local_client:
|
for item in _local_client:
|
||||||
item[0].close()
|
item[0].close()
|
||||||
# 关闭端口之后把列表置空
|
# 关闭端口之后把列表置空
|
||||||
_local_client=[]
|
_local_client=[]
|
||||||
|
_local_client_lock.release()
|
||||||
myprint('连接列表已清空')
|
myprint('连接列表已清空')
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user