整理业务逻辑,添加一些注释
This commit is contained in:
10
target.py
10
target.py
@@ -24,6 +24,8 @@ import prot_codec as pc
|
||||
# close
|
||||
|
||||
|
||||
# 这里是公共变量,所有tcp_target对象都可以访问
|
||||
# 只支持一对一连接
|
||||
_tcp_server=None
|
||||
_tcp_client=None
|
||||
|
||||
@@ -36,26 +38,32 @@ class tcp_target(object):
|
||||
def recv_handler(self,recv_data:bytearray):
|
||||
global _tcp_client
|
||||
global _tcp_server
|
||||
# 解包查看数据类型
|
||||
cmd,data=pc.decode(recv_data)
|
||||
print(cmd.decode('utf-8'))
|
||||
j=json.loads(cmd)
|
||||
if(j["device"]=="client"):
|
||||
if(j["option"]=="login"):
|
||||
# 登陆时保存客户端句柄,断开之前的句柄
|
||||
if(_tcp_client is not None):
|
||||
_tcp_client.close()
|
||||
_tcp_client=self.handler
|
||||
else:
|
||||
# 其他消息原样发送到服务器端
|
||||
if(_tcp_server is not None):
|
||||
_tcp_server.send(recv_data)
|
||||
if(j["device"]=="server"):
|
||||
if(j["option"]=="login"):
|
||||
# 登陆时保存客户端句柄,断开之前的句柄
|
||||
if(_tcp_server is not None):
|
||||
_tcp_server.close()
|
||||
_tcp_server=self.handler
|
||||
else:
|
||||
# 其他消息原样发送到客户端
|
||||
if(_tcp_client is not None):
|
||||
_tcp_client.send(recv_data)
|
||||
# 只要有一个断了所有的都断开
|
||||
# 通知服务器和客户端断开连接
|
||||
# 这里只进行数据的收发处理,不执行端口的close操作
|
||||
def close(self):
|
||||
cmd={'device':'proxy','option':'close'}
|
||||
data=pc.encode(json.dumps(cmd).encode('utf-8'),b'default')
|
||||
|
Reference in New Issue
Block a user