def send_command(self, command, arguments=''): """ Send a command to the server which is to be passed to an object of the appropriate type. """ if self._communication_thread is None: raise RuntimeError, "Client is not registered. Cannot send command." msg = r"Client on port %i sending: %s %s" logger.debug(msg, self._port, command, arguments) args = MESSAGE_SEP.join((str(self._port), command, arguments)) if self.registered: self.error = not send_port(self._server_port, 'send', args) else: self._queue.append((command, arguments))
"spawn command is defined. Unregistering...") self.client.error = True self.client.unregister() return else: self.client._server_port = server_port # Create the socket that will receive commands from the server sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost', 0)) sock.listen(1) self.client._port = sock.getsockname()[1] # Register with the server port = str(self.client._port) arguments = MESSAGE_SEP.join((port, self.client.self_type, self.client.other_type)) self.client.error = not send_port(self.client._server_port, 'register', arguments) self.client.registered = True # Send queued commands (these can only exist if we spawned the server) for command, args in self.client._queue: arguments = MESSAGE_SEP.join((port, command, args)) self.client.error = not send_port(self.client._server_port, 'send', arguments) self.client._queue = [] # Start the loop to listen for commands from the Server logger.info("Client listening on port %i..." % self.client._port) try: while not self._finished:
"spawn command is defined. Unregistering...") self.client.error = True self.client.unregister() return else: self.client._server_port = server_port # Create the socket that will receive commands from the server sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost', 0)) sock.listen(1) self.client._port = sock.getsockname()[1] # Register with the server port = str(self.client._port) arguments = MESSAGE_SEP.join( (port, self.client.self_type, self.client.other_type)) self.client.error = not send_port(self.client._server_port, 'register', arguments) self.client.registered = True # Send queued commands (these can only exist if we spawned the server) for command, args in self.client._queue: arguments = MESSAGE_SEP.join((port, command, args)) self.client.error = not send_port(self.client._server_port, 'send', arguments) self.client._queue = [] # Start the loop to listen for commands from the Server logger.info("Client listening on port %i..." % self.client._port) try: while not self._finished: