Ошибка в моем сервере на Python

Я пишу игру на Python 3.8 с изпользованием библиотеки Pygame. Писал сервер с использованием библиотек socket и threading Хотя айпи и порт указан правильно, сервер не хочет запускатся, выдаёт ошибку [WinError 10022] An invalid argument was supplied. У меня есть переменная self.conencted, которая обозначает, запустился ли сервер. Она почему-то ставится на true Вот код моего класса:

class Server(Thread):
    def __init__(self, name, identifier, ip, port):
        self.ip = ip
        self.port = port

        Thread.__init__(self)

        self.name = name
        self.id = identifier
        self.connected = False
        self.tosend = None
        self.data = None
        self.conn = None
        self.addr = None
        self.alive = True

        self.s = socket.socket()
        self.s.setblocking(False)

    def connect(self):
        timer = 0
        starttimer = time.perf_counter()
        self.connected = False
        while timer < 5:
            try:
                self.s.bind((self.ip, self.port))
                self.connected = True
                print('LOG: Started server!')
            except socket.error as e:
                print('LOG: ERROR:', e)

            timer = time.perf_counter() - starttimer

    def getdata(self):
        toreturn = self.data
        self.data = None
        return toreturn

    def isConnected(self):
        return self.connected

    def send(self, data):
        self.tosend = data

    def setAlive(self, b):
        self.alive = b

    def getAlive(self):
        return self.alive

    def run(self):
        print('LOG: Binding server...')
        self.connect()
        if self.connected:
            self.s.listen(1)
            while self.alive:
                try:
                    self.conn, self.addr = self.s.accept()
                    print("LOG: NEW CONNECTION:", self.conn, self.addr)
                    break
                except socket.error:
                    pass

            while self.alive:
                try:
                    self.data = self.conn.recv(16384).decode('utf-8')
                except socket.error:
                    pass

                try:
                    if self.tosend is not None:
                        self.conn.send(self.tosend.encode('utf-8'))
                        self.tosend = None
                except socket.error:
                    pass

Если нужны дополнительные файлы, вот мой репозиторий на GitHub Прошу помочь, хотел сделать свою игру, все получалось, но тут этот баг, целый день просидел, ничего не могу понять.


Ответы (0 шт):