From 87f1bca0d58641127132a5083f3e5285298d7e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E5=AE=99=E9=81=A8=E6=B8=B8?= <2746069727@qq.com> Date: Thu, 26 Oct 2023 09:08:46 +0800 Subject: [PATCH] demo --- client.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++ p2p.png | Bin 0 -> 29933 bytes p2pserve.py | 40 ++++++++++++++++++++++++++++++++++++++ readme.md | 3 +++ serve.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ test.bat | 5 +++++ 测试.png | Bin 0 -> 109482 bytes 7 files changed, 151 insertions(+) create mode 100644 client.py create mode 100644 p2p.png create mode 100644 p2pserve.py create mode 100644 readme.md create mode 100644 serve.py create mode 100644 test.bat create mode 100644 测试.png diff --git a/client.py b/client.py new file mode 100644 index 0000000..5f24bee --- /dev/null +++ b/client.py @@ -0,0 +1,49 @@ +import socket +from threading import Thread + +BUFFER_SIZE = 1024 +TIME_OUT = 5 + +p2p_serv_addr = (input('输入P2P服务器地址: '),9000) +def get_server_port(ip): + sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) + sock.sendto(f'ip {ip}'.encode(),p2p_serv_addr) + buf,_ = sock.recvfrom(BUFFER_SIZE) + sock.close() + return int(buf.decode()) + +server_ip = input('输入服务器地址: ') +server_addr = (server_ip,get_server_port(server_ip)) + +tcp = socket.socket(socket.AF_INET,socket.SOCK_STREAM) +tcp.bind(('0.0.0.0',9001)) +tcp.listen() + +def get_server_data(tcp_sock,udp_sock): + try: + while True: + buf,_ = udp_sock.recvfrom(BUFFER_SIZE) + tcp_sock.send(buf) + except: + pass + +def client_handler(sock): + udp_sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) + udp_sock.sendto(b'hello',p2p_serv_addr) + Thread(target=get_server_data,args=[sock,udp_sock]).start() + try: + while True: + buf = sock.recv(BUFFER_SIZE) + if not buf: + break + udp_sock.sendto(buf,server_addr) + except: + pass + finally: + sock.close() + udp_sock.close() + +while True: + sock,_ = tcp.accept() + sock.settimeout(TIME_OUT) + Thread(target=client_handler,args=[sock]).start() diff --git a/p2p.png b/p2p.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea839f5e38507d5cab98aec447d958215415bd2 GIT binary patch literal 29933 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 120: + ip_map[v] = None + sleep(5) + +Thread(target=clean_ip_map).start() + +def cache_address(addr): + ip_map[addr[0]] = {'port':addr[1],'time':int(time())} + +def get_address(data,addr): + if ip_map.get(data) == None: + return + udp.sendto(str(ip_map[data]['port']).encode(),addr) + +while True: + buf,addr = udp.recvfrom(BUFFER_SIZE) + try: + data = buf.decode() + if data[:4] == 'life': + cache_address(addr) + elif data[:2] == 'ip': + get_address(data[3:],addr) + except: + pass \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8e1c299 --- /dev/null +++ b/readme.md @@ -0,0 +1,3 @@ +# p2p 测试代码 +## 通过p2p方式无需服务器转发流量实现内网穿透 思路见 p2p.png +## 测试效果见 测试.png,udp to tcp协议转换代码可能不稳定 \ No newline at end of file diff --git a/serve.py b/serve.py new file mode 100644 index 0000000..85b7d5c --- /dev/null +++ b/serve.py @@ -0,0 +1,54 @@ +import socket +from time import sleep +from threading import Thread + +BUFFER_SIZE = 1024 +TIME_OUT = 5 + +game_serv_addr = ('127.0.0.1',int(input('输入游戏服务器端口: '))) +p2p_serv_addr = (input('输入P2P服务器地址: '),9000) +udp = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) + +def life_data(): + while True: + udp.sendto('life'.encode(),p2p_serv_addr) + sleep(10) + +Thread(target=life_data).start() + +udp.sendto('life'.encode(),p2p_serv_addr) + + +client_map = {} + +def addr_to_ip(addr): + return f'{addr[0]}:{str(addr[1])}' + +def client_handler(sock,addr): + try: + while True: + buf = sock.recv(BUFFER_SIZE) + if not buf: + break + udp.sendto(buf,addr) + except: + pass + finally: + sock.close() + client_map[addr_to_ip(addr)] = None + +while True: + try: + buf,addr = udp.recvfrom(BUFFER_SIZE) + ip = addr_to_ip(addr) + if client_map.get(ip) == None: + sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) + sock.settimeout(TIME_OUT) + sock.connect(game_serv_addr) + Thread(target=client_handler,args=[sock,addr]).start() + client_map[ip] = sock + + client = client_map[ip] + client.send(buf) + except: + pass diff --git a/test.bat b/test.bat new file mode 100644 index 0000000..7fca7ae --- /dev/null +++ b/test.bat @@ -0,0 +1,5 @@ +start python p2pserve.py +timeout /t 1 +start python serve.py +timeout /t 1 +start python client.py \ No newline at end of file diff --git a/测试.png b/测试.png new file mode 100644 index 0000000000000000000000000000000000000000..774a8ec2d03d9e033c254663b4bdfc880e76eb7d GIT binary patch literal 109482 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 v0o26>J9%A$96Q!(>z_s_!mQ{ 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%0AA$ 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 z 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 UV=TI_vF?YeqLxC9oK@I=0rlYy2><{9 literal 0 HcmV?d00001