OSError : [ WinError 10049 ] Требуемый адрес для своего контекста неверен
Помогите, уже 3 часа не могу понять в чем трабл.
import socket
import time
from threading import *
from Logic.Device import Device
from Logic.Player import Player
from Protocol.LogicMessageFactory import packets
def _(*args):
print('[INFO]', end=' ')
for arg in args:
print(arg, end=' ')
print()
print(r"""
Server
V28.189
""")
class Server:
def __init__(self, ip: str, port: int):
self.server = socket.socket()
self.port = port
self.ip = ip
def start(self):
self.server.bind((self.ip, self.port))
_(f'Server started! Ip: {self.ip}, Port: {self.port}')
while True:
self.server.listen()
client, address = self.server.accept()
_(f'New connection! Ip: {address[0]}')
ClientThread(client, address).start()
class ClientThread(Thread):
def __init__(self, client, address):
super().__init__()
self.client = client
self.address = address
self.device = Device(self.client)
self.player = Player(self.device)
def recvall(self, length: int):
data = b''
while len(data) < length:
s = self.client.recv(length)
if not s:
print("ERROR while receiving data!")
break
data += s
return data
def run(self):
last_packet = time.time()
while True:
header = self.client.recv(7)
if len(header) > 0:
last_packet = time.time()
packet_id = int.from_bytes(header[:2], 'big')
length = int.from_bytes(header[2:5], 'big')
data = self.recvall(length)
if packet_id in packets:
_(f'Received packet! Id: {packet_id}')
message = packets[packet_id](self.client, self.player, data)
message.decode()
message.process()
else:
_(f'Packet not handled! ({packet_id})')
if time.time() - last_packet > 10:
_("Client disconnected!")
self.client.close()
break
if __name__ == '__main__':
server = Server('5*.**.*3*.***', 9339)
server.start()