实现端口转发功能,经测试,ssh、http可以正常使用

This commit is contained in:
ranchuan
2024-05-22 19:03:17 +08:00
commit de5e54681d
9 changed files with 594 additions and 0 deletions

57
target.py Normal file
View File

@@ -0,0 +1,57 @@
import os
import sys
import json
import socket
import prot_codec as pc
# 定义服务器和客户端
# device:
# server
# client
# 定义操作类型
# option:
# connect
# disconnect
# data
# login
_tcp_server=None
_tcp_client=None
class tcp_target(object):
def __init__(self,tcp_handler:socket):
self.handler=tcp_handler
self.state="idle"
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)