Dies ist mein serverseitiger Code (ich bin neu in diesem Bereich, daher ist er möglicherweise nicht der am besten lesbare/pythonische Code
Code: Select all
import socket
import threading
import time
class Server():
def __init__(self):
self.host = "0.0.0.0"
self.port = 25566
self.client1 = False
self.client2 = False
self.thread_count = 0
self.threads = []
self.connections = []
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.bind((self.host,self.port))
self.sock.listen()
self.data_1 = ""
self.data_2 = ""
while True:
conn, addr = self.sock.accept()
self.connections.append(conn)
worker = threading.Thread(target=self.handle_client, args=(conn,addr))
self.threads.append(worker)
worker.start()
def handle_client(self, conn, addr):
print(f"Connected to {addr}")
self.thread_count += 1
try:
while True:
data = conn.recv(1024)
decoded_data = data.decode()
print(f"Received {decoded_data} from {addr}")
print(decoded_data[0])
if decoded_data == "Boot1":
self.client1 = True
encoded_data = ("confirmed").encode()
self.connections[0].sendall(encoded_data)
elif decoded_data == "Boot2":
self.client2 = True
encoded_data = ("confirmed").encode()
self.connections[1].sendall(encoded_data)
if self.client1 and self.client2:
if decoded_data[0] == "1":
self.data_1 = decoded_data
print(f"\n\n{self.data_1}")
elif decoded_data[0] == "2":
self.data_2 = decoded_data
if self.data_1 != "" and self.data_2 != "":
print(self.data_1)
package_data = self.data_1 + self.data_2
encoded_data = package_data.encode()
self.data_1 == ""
self.data_2 == ""
for conn in self.connections:
conn.sendall(encoded_data)
except KeyboardInterrupt:
for conn in self.connections:
conn.close()
self.sock.close()
Server()
Code: Select all
def send_data():
try:
encoded_data = (f"{player.id}:{player.x_scroll}:{player.y_scroll}:").encode()
print(f"Sending {encoded_data}")
player.sock.sendall(encoded_data)
data = player.sock.recv(1024)
decoded_data = data.decode()
# parse the data
data_list = decoded_data.split(":")
print(data_list)
except KeyboardInterrupt:
print("aye aye")
player.sock.close()
quit()
Mobile version