Я пишу прокси-сервер TCP для Minecraft In python. Но когда я запускаю программу и пытаюсь подключиться к прокси, она просто говорит о том, что она подключается, а затем время ожидания
Я запускаю сервер Minecraft, с которым я тестирую, а также прокси на моем компьютере. сервер на порту 25565 прокси на порту 8080
, хотя я также проверил его на mineplex и hypixel, и он также не работал на них
Как я могу решить проблему
код:
import socket
from threading import Thread
class Proxy2Server(Thread):
def __init__(self, host, port):
self.game = None
self.port = port
self.host = host
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server.connect((host, port))
def run(self):
while True:
data = self.server.recv(4096)
print("[server]", data)
if data:
self.game.sendall(data)
class Game2Proxy(Thread):
def __init__(self, host, port):
self.server = None
self.port = port
self.host = host
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((host, port))
sock.listen(1)
self.game, addr = sock.accept()
def run(self):
while True:
data = self.game.recv(4096)
print("[client]", data)
if data:
self.server.sendall(data)
class Proxy(Thread):
def __init__(self, from_host, to_host, from_port, to_port):
super(Proxy, self).__init__()
self.from_host = from_host
self.to_host = to_host
self.from_port = from_port
self.to_port = to_port
def run(self):
while True:
print(f"[proxy {self.from_host}:{self.from_port}] setting up")
self.g2p = Game2Proxy(self.from_host, self.from_port)
self.p2s = Proxy2Server(self.to_host, self.to_port)
print(f"[proxy {self.from_host}:{self.from_port}] connection established")
self.g2p.server = self.p2s.server
self.p2s.game = self.g2p.game
from_host = input("from-host$ ")
from_port = int(input("from-port$ "))
to_host = input("to-host$ ")
to_port = int(input("port$ "))
ProxyServer = Proxy(from_host, to_host, from_port, to_port)
ProxyServer.start()```