Почему время ожидания соединения с прокси-сервером? - PullRequest
0 голосов
/ 27 апреля 2020

Я пишу прокси-сервер 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()```
...