added server communication between client and server

This commit is contained in:
2024-01-07 19:26:41 +01:00
parent fab79061ea
commit 6adea1730e
31 changed files with 173 additions and 129 deletions

View File

@ -2,7 +2,7 @@ import json
import socket
import threading
from Game_Client.Classes.System.Network.EventHandler import TCPEventHandler, UDPEventHandler
from Classes.System.Network.EventHandler import TCPEventHandler, UDPEventHandler
class NetworkManager:
class UDP:
@ -11,19 +11,22 @@ class NetworkManager:
self.port = int(port)
self.udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.eventHandler = UDPEventHandler(self.udpSocket)
try:
self.udpSocket.bind((self.addr, self.port))
except Exception as e:
print(f"Error binding UDP socket: {e}")
# start listener thread
self.listen()
def send(self, message: dict):
self.udpSocket.sendto(json.dumps(message).encode(), (self.addr, self.port))
try:
self.udpSocket.sendto(json.dumps(message).encode(), (self.addr, self.port))
except Exception as e:
print(f"Error sending UDP data: {e}")
# starts a listener thread for udp data
def listen(self):
udpThread = threading.Thread(target=self.receive)
udpThread.daemon = True
udpThread.start()
def receive(self):
while True:
try:
@ -35,6 +38,11 @@ class NetworkManager:
print(f"Error receiving UDP data: {e}")
break
def listen(self):
udpThread = threading.Thread(target=self.receive)
udpThread.daemon = True
udpThread.start()
class TCP:
def __init__(self, addr: str, port: str):
self.addr = addr
@ -42,20 +50,19 @@ class NetworkManager:
self.tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.eventHandler = TCPEventHandler(self.tcpSocket)
# start listener thread
try:
self.tcpSocket.connect((self.addr, self.port))
except Exception as e:
print(f"Error connecting TCP socket: {e}")
# Starten des Listener-Threads
self.listen()
def connect(self):
self.tcpSocket.connect((self.addr, self.port))
def send(self, message: dict):
self.tcpSocket.sendall(json.dumps(message).encode())
# starts a listener thread for tcp data
def listen(self):
tcp_thread = threading.Thread(target=self.receive)
tcp_thread.daemon = True
tcp_thread.start()
try:
self.tcpSocket.sendall(json.dumps(message).encode())
except Exception as e:
print(f"Error sending TCP data: {e}")
def receive(self):
while True:
@ -68,6 +75,11 @@ class NetworkManager:
print(f"Error receiving TCP data: {e}")
break
def __init__(self, addr: str, port: str):
self.tcp = self.TCP(addr, port)
self.udp = self.UDP(addr, port)
def listen(self):
tcpThread = threading.Thread(target=self.receive)
tcpThread.daemon = True
tcpThread.start()
def __init__(self, addr: str, tcpport: str, udpport: str):
self.tcp = self.TCP(addr, tcpport)
self.udp = self.UDP(addr, udpport)