#!/usr/bin/python3 import socket, sys, select import mysockets server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(("localhost", int(sys.argv[1]))) server.listen(1000) readers = [server] writers = [] while True: print("Waiting to read") read, write, error = select.select(readers, [], [], 1) print(repr(read)) response = [] for s in read: if s == server: (client, address) = s.accept() readers.append(client) writers.append(client) print("accepted a client!") else: str = mysockets.read(s) if (len(str) == 0): print("Client disconnected") readers.remove(s) writers.remove(s) s.close() else: response.append( str.upper()) print("Waiting to send") read, write2, error = select.select([], writers, [], 1) print(repr(write2)) if len(response) > 0: toSend = response.pop(0) for w in write2: mysockets.write(w, toSend)