def open(self, enable_rpc_compression): if not self.__is_close: return self.__transport = TTransport.TFramedTransport( TSocket.TSocket(self.__host, self.__port)) if not self.__transport.isOpen(): try: self.__transport.open() except TTransport.TTransportException as e: print('TTransportException: ', e) if enable_rpc_compression: self.__client = Client( TCompactProtocol.TCompactProtocol(self.__transport)) else: self.__client = Client( TBinaryProtocol.TBinaryProtocol(self.__transport)) open_req = TSOpenSessionReq(client_protocol=self.protocol_version, username=self.__user, password=self.__password, zoneId=self.__zone_id) try: open_resp = self.__client.openSession(open_req) if self.protocol_version != open_resp.serverProtocolVersion: print( "Protocol differ, Client version is {}, but Server version is {}" .format(self.protocol_version, open_resp.serverProtocolVersion)) # version is less than 0.10 if open_resp.serverProtocolVersion == 0: raise TTransport.TException( message="Protocol not supported.") self.__session_id = open_resp.sessionId self.__statement_id = self.__client.requestStatementId( self.__session_id) except Exception as e: self.__transport.close() print("session closed because: ", e) if self.__zone_id is not None: self.set_time_zone(self.__zone_id) else: self.__zone_id = self.get_time_zone() self.__is_close = False
if __name__ == '__main__': ip = "localhost" port = "6667" username = '******' password = '******' # Make socket transport = TSocket.TSocket(ip, port) # Buffering is critical. Raw sockets are very slow transport = TTransport.TBufferedTransport(transport) # Wrap in a protocol protocol = TBinaryProtocol.TBinaryProtocol(transport) # Create a client to use the protocol encoder client = Client(protocol) # Connect! transport.open() # Authentication clientProtocol = TSProtocolVersion.IOTDB_SERVICE_PROTOCOL_V2 resp = client.openSession( TSOpenSessionReq(client_protocol=clientProtocol, username=username, password=password)) if resp.serverProtocolVersion != clientProtocol: print('Inconsistent protocol, server version: %d, client version: %d' % (resp.serverProtocolVersion, clientProtocol)) if resp.serverProtocolVersion > clientProtocol: exit()