Untitled
unknown
plain_text
a year ago
1.8 kB
7
Indexable
import socket import pickle import time import threading s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "127.0.0.1" port = 9999 playerOne = 1 playerTwo = 2 playerConn = list() playerAddr = list() #Socket program def start_server(): #Binding to port 9999 #Only two clients can connect try: s.bind((host, port)) print("PVP tank server started \nBinding to port", port) s.listen(2) accept_players() except socket.error as e: print("Server binding error:", e) #Accept player #Send player number def accept_players(): try: for i in range(2): conn, addr = s.accept() msg = "<<< You are player {} >>>".format(i+1) conn.send(msg.encode()) playerConn.append(conn) playerAddr.append(addr) print("Player {} - [{}:{}]".format(i+1, addr[0], str(addr[1]))) threading.Thread(target=handle_client, args=(conn,)).start() # start_game() s.close() except socket.error as e: print("Player connection error", e) except KeyboardInterrupt: print("\nKeyboard Interrupt") exit() except Exception as e: print("Error occurred:", e) def handle_client(conn): while True: try: data = conn.recv(1024).decode() print("Received from client:", data) # Xử lý dữ liệu từ client tại đây if data == "": break other_conn = [c for c in playerConn if c != conn] if other_conn: other_conn[0].sendall(data.encode()) except socket.error as e: print("Error receiving data from client:", e) break start_server()
Editor is loading...
Leave a Comment