class ClientEndpoint(object): socket = None parser = None def __init__(self, config): self.logger = logging.getLogger() self.connector = Connector(config.server.host, config.server.port, config.server.enablessl, config.server.crtfile, config.server.timeout, ) self.parser = Parser(config.main.serializer) def connect(self): self.socket = self.connector.connect() def request(self, data): pack = self.parser.encode(data) try: self.socket.sendall(pack) response = self.socket.read(1024) except Exception, e: self.logger.warn("Request failed: %s" % str(e)) raise ConnectionError(self.connector.host) try: return self.parser.decode(response) except ValueError, e: self.logger.warn("Decoding of request failed: %s" % str(e)) raise ConnectionError(self.connector.host)
class ClientEndpoint(object): socket = None parser = None def __init__(self, config): connector = Connector(config.server.host, config.server.port, #config.server.keyfile, config.server.crtfile, config.server.timeout, ) self.socket = connector.connect() self.parser = Parser(config.main.serializer) def request(self, data): pack = self.parser.encode(data) self.socket.sendall(pack) #self.socket.write(pack) response = self.socket.read(1024) return self.parser.decode(response) #return self.parser.decode(self.socket.read(1024)) #return self.parser.decode(self._recv()) def _recv(self, n=1): data = "" chunk = "" while len(data) < n: try: chunk = self.socket.recv(n - len(data)) #chunk = self.socket.read(n - len(data)) except Exception, e: print "SSL read failed: %s" % str(e) if len(chunk) == 0: break data += chunk print "\033[33mdata: %s\033[0m" % str(data) return data