class ChatClient(): def __init__(self, server, port): self.server = server self.port = port self.keep_running = False self.sock = None def connect(self): self.sock = ReadWriteSocket() self.sock.connect((self.server, self.port)) self.keep_running = True initialized = False prompt = "Enter a nickname: " nickname = None print prompt while self.keep_running and nickname is None: nickname = sys.stdin.readline().strip() self.sock.write(nickname) reply = self.sock.readnext() print reply if not reply.startswith("ERROR"): break threading.Thread(target=self.server_handler).start() while self.keep_running: sys.stdout.write(">") msg = sys.stdin.readline().strip() if msg != "": self.sock.write(msg) def server_handler(self): while self.keep_running: readables, writables, error = select.select([self.sock], [], [], 1) for s in readables: print s.readnext()