예제 #1
0
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)
예제 #2
0
파일: connect.py 프로젝트: inkhey/mmc
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