keys = RSA.import_key(key.read()) # !!!keys.publickey().export_key() logger.debug("Keys sucsessfully loaded.") # Создаём объект базы данных database = ClientDatabase(client_name) # Создаём объект - транспорт и запускаем транспортный поток try: transport = ClientTransport(server_port, server_address, database, client_name, client_passwd, keys) logger.debug("Transport ready.") except ServerError as error: message = QMessageBox() message.critical(start_dialog, 'Ошибка сервера', error.text) sys.exit(1) transport.setDaemon(True) transport.start() # Удалим объект диалога за ненадобностью del start_dialog # Создаём GUI main_window = ClientMainWindow(database, transport, keys) main_window.make_connection(transport) main_window.setWindowTitle(f'Чат Программа alpha release - {client_name}') client_app.exec_() # Раз графическая оболочка закрылась, закрываем транспорт transport.transport_shutdown() transport.join()
with open(key_file, 'rb') as key: keys = RSA.import_key(key.read()) # !!!keys.publickey().export_key() CLIENT_LOGGER.debug("Keys successfully loaded.") # Инициализация БД database = ClientDatabase(client_name) # Инициализация сокета и запуск потока try: tcp_sock = ClientTransport(server_port, server_address, database, client_name, client_passwd, keys) CLIENT_LOGGER.debug("Socket ready.") except Exception as ErrorNotConnection: message = QMessageBox() message.critical(start_dialog, 'Ошибка сервера', f'{ErrorNotConnection} - нет соединения') CLIENT_LOGGER.error(f'Не удалось подключиться к серверу {server_address}:{server_port}') sys.exit(1) tcp_sock.setDaemon(True) tcp_sock.start() # Создание GUI main_window = ClientMainWindow(database, tcp_sock, keys) main_window.make_connection(tcp_sock) main_window.setWindowTitle(f'Чат-программа b-release - {client_name}') client_app.exec_() # После закрытия графической оболочки, закрываем сокет tcp_sock.transport_shutdown() tcp_sock.join()