Błąd podczas wysyłania wiadomości pomiędzy client a serverem

0

Server:

import socket as s
import threading
from time import sleep

PORT = 3389
HEADER = 8

server = s.socket(s.AF_INET, s.SOCK_STREAM)
server.bind(("", PORT))
server.listen(2)

print(f"Server Listening on {PORT}")

connection = []
players_positions = []


class SendData:
    def send(self, client, data):
        data = data
        data = str(data)
        data = data.encode()
        client.send(data)

class RecvData:
    def __init__(self):
        self.id = None

    def recv(self, client):
        data = client.recv(4096)
        data = data.decode("utf")
        data = eval(data)
        print(data)

def main(client, address, connection, players_positions):
    senddata = SendData()
    recvdata = RecvData()
    print(f"New connection to {address}")
    connection.append(client)
    tickrate = 96


    try:
        while True:
            sleep(1/tickrate)
            recvdata.recv(client)
    except:
        print(f"connection lost {address}")
        connection.remove(client)





while True:
    client, adders = server.accept()

    thread = threading.Thread(target=main, args=(client, adders, connection, players_positions))
    thread.start()

Client:

import pygame
import socket as s
from random import randint

pygame.init()

class Connection:
    def __init__(self):
        self.HEADER = 8
        self.HOST = "192.168.0.100"
        self.PORT = 3389
        self.Connection_complete = False
        self.client = s.socket(s.AF_INET, s.SOCK_STREAM)

    def connect(self):
        try:
            self.client.connect((self.HOST, self.PORT))
            print("Connect complete")
            self.Connection_complete = True
        except:
            print("Connection failed")
            print("Connection...")

class SendData:
    def send(self, client, data):
        data = data
        data = str(data)
        data = data.encode()
        client.send(data)

class RecvData:
    def recv(self, client):
        data = client.recv(4096)
        data = data.decode("utf")
        data = eval(data)
        return data

class Player:
    def __init__(self):
        self.x = 0
        self.y = 0
        self.speed = 5
        self.id = randint(1, 9999999)
        self.players_positions = None

    def tick(self, keys):
        if keys[pygame.K_s]:
            self.y += self.speed
        if keys[pygame.K_d]:
            self.x += self.speed
        if keys[pygame.K_w]:
            self.y -= self.speed
        if keys[pygame.K_a]:
            self.x -= self.speed

    def draw(self, window):
        print(self.players_positions)
        #pygame.draw.rect(window, [0, 0, 0], [])


def main():
    run = True
    senddata = SendData()
    recvdata = RecvData()
    connection = Connection()
    player = Player()
    window = pygame.display.set_mode((1290, 720))

    connection.connect()

    while run:
        events = pygame.event.get()
        keys = pygame.key.get_pressed()

        for event in events:
            if event.type == pygame.QUIT:
                run = False

        if connection.Connection_complete == True:

            senddata.send(connection.client, [player.id, player.x, player.y])

            window.fill([100, 200, 100])
            player.tick(keys)
            player.draw(window)

            pygame.display.update()

        else:
            connection.connect()







if __name__ == "__main__":
    main()

i taki otrzymuje bład:
obraz_2022-06-26_155600427.png

0

Przetlumaczyles ten blad w ogóle?

1 użytkowników online, w tym zalogowanych: 0, gości: 1