import socket import sys mode = 'quit' while True: resp = input('Run as server or client (Ss/Cc): ') if resp in ['S', 's']: mode = 'server' break if resp in ['C', 'c']: mode = 'client' break if resp in ['Q', 'q']: mode = 'quit' break if mode == 'quit': sys.exit(0) if mode == 'server': server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('0.0.0.0', 8081)) server_socket.listen() print('Server: Waiting for connection') connection, address = server_socket.accept() print('Server: Client connected, address:', address) else: address = input('Client: What is the servers IP address? (default: 127.0.0.1): ') if not address: address = '127.0.0.1' connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) connection.connect((address, 8081)) print('Client: Connected to server at', address) name = input('Client: enter your chat name: ') if not name: name = 'anonymous' connection.send(bytes(name + " connected to the server", 'utf-8')) if mode == 'server': prompt = 'Server: ' else: prompt = 'Client: ' while True: message = connection.recv(1024) if not message: break print(prompt, message.decode()) new_message = input(prompt + 'type a message: ') if new_message == 'quit': break connection.send(new_message.encode()) print(prompt + 'stopped') connection.close() if mode == "server": server_socket.close()