Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2018-01-04 | 267 |
5.00
из
|
Заказать работу |
|
|
Решение задачи сейсморазведки на параллельных ресурсах для нормального падения для плоскопараллельных сред реализуется на вычислительной архитектуре семейства SKIF, на которой используется операционная система на основе ядра linux CentOS. Доступ к кластеру с такой системой организуется через протокол SSH. Для организации такого доступа используется библиотека
libssh 0.3.
Библиотека libssh предназначена для интеграции поддержки SSH в программы на языке Си. Библиотека позволяет выполнять программы на удаленном сервере, копировать файлы через защищенное соединение, при этом осуществляется поддержка как стандартного scp механизма, так и поддержка sftp, которая реализована без задействования внешних библиотек, таких как libcrypto (из OpenSSL) или libgcrypt.
Libssh реализует серверные и клиентские функции, поддерживает протоколы SSH1 и SSH2, режимы шифрования AES-128, AES-192, AES-256, Blowfish, 3DES в CBC, возможность работы с серверами публичных ключей RSA и DSS, поддерживает сжатие данных, работу совместно с ssh-agent и организацию работы нескольких сеансов в рамках одного соединения.
Исходные тексты библиотеки распространяются под лицензией LGPL. Отсутствие зависимостей от внешних приложений и библиотек, позволяет использовать libssh для встраиваемых устройств. Из программ, использующих libssh можно отметить утилиту для двухсторонней синхронизации файлов csync.
Для взаимодействия планшетов с этой библиотекой реализован класс QSshSocket. Он предназначен для создания асинхронного программного интерфейса обмена данными (сокета) по протоколам ssh и scp. Класс реализован для использования с библиотекой Qt, которая является кроссплатформенной и соответствует логике программной реализации планшетов. Класс эффективно использует функции библиотеки libSSH, в результате чего имеет несколько недостатков, например, он скрывает криптографические ключи на прохождение данных, обеспечивает ответы на команды в одном потоке, не используя сигналы «readyRead», но в случае необходимости эти недостатки можно доработать. Для того чтобы получить эту работу для потока, данный файл должен обязательно быть включен в тело проекта.
|
Стандартный класс QThread из библиотеки QT является прародителем класса QSshSocket, который помимо стандартных возможностей включает в себя следующий набор констант и функций:
· Набор констант SshError описывает ошибки соединения и включает в себя следующие состояния:
§ SocketError - возникла проблема создания сокета, что, скорее всего, связано с отсутствием подключения к Интернету;
§ SessionCreationError – SH-сеанс не может быть создан из-за невозможности найти удаленный хост;
§ ChannelCreationError – канал SSH не может быть создан для предыдущей операции;
§ ScpChannelCreationError – канал scp не может быть создан для предыдущей операции передачи файлов;
§ ScpPullRequestError – возникла ошибка запроса передачи файла через pull;
§ ScpPushRequestError – возникла ошибка запроса передачи файла через push;
§ ScpFileNotCreatedError – файл назначения для предыдущей передачи не существует;
§ ScpReadError – возникла ошибка при чтении удаленного файла. Возможно, это связано с правами пользователя;
§ ScpWriteError – возникла ошибка записи в удаленный файл. Возможно, это связано с правами пользователя;
§ PasswordAuthenticationFailedError – полномочия пользователя на удаленном хосте не проходят проверкой подлинности;
· explicit QSshSocket(QObject * parent = 0) – конструктор класса;
· ~ QSshSocket() – деструктор класса;
· void connectToHost(QString host, int port =22) – эта функция соединяет данный сокет с указанным узлом через указанный порт. В случае успеха, сигнал подключен и испускается, иначе формируется ошибка;
· void disconnectFromHost() – эта функция отключает соединение от текущего хоста (если таковой имеется). В случае успеха, создается сигнал отсоединения, иначе формируется ошибка;
|
· void executeCommand(QString command) – эта функция выполняет команду удаленного управления на подключенном хосте. Если нет подключения к удаленному узлу, то команда не выполняется. В случае успеха, формируется сигнал commandExecuted, иначе формируется ошибка;
· QString host() – возвращает краткое имя хоста удаленной машины, к которому есть соединение. Если нет подключения к удаленному узлу, то функция возвращает пустую строку;
· bool isLoggedIn() – возвращает значение о том, был ли пользователь внесен в журнал на удаленном хосте;
· bool isConnected() – возвращает значение о подключении сокета в данный момент к удаленному узлу;
· void login(QString user, QString password) – эта функция подключения пользователя в данный момент по учетным данным. В случае успеха, создается сигнал подлинности, иначе формируется ошибка;
· int port() – возвращает порт текущего соединения. Если не подключен к удаленному узлу, это возвращает -1;
· void pullFile(QString localPath, QString remotePath) – эта функция пытается перенести удаленный файл с подключенного хоста в локальное хранилище. Локальный файл не должен быть создан заранее. В случае успеха создается сигнал pullSuccessful, иначе формируется ошибка. Если нет подключения к удаленному хосту или если передача была неудачной, формируется сигнал ошибки. Параметрами функции являются путь к файлу хранится на локальном компьютере и путь к файлу, хранящемуся на удаленном компьютере;
· void setWorkingDirectory(QString path) – эта функция пытается установить рабочий каталог подключения к пути и формирует сигнал workingDirectorySet после завершения. Если workingDirectorySet указывает на отсутствие изменений в рабочем каталоге, путь не может быть найден. Если нет подключения к удаленному хосту или если передача была неудачной, формируется сигнал ошибки. Функция имеет параметр, в котором указан относительный или абсолютный путь к каталогу на удаленном хосте;
· QString user() – возвращает краткое имя текущего пользователя, прошедшего аутентификацию на удаленном хосте. Если нет подключения к удаленному хосту, или если пользователь не прошел проверку подлинности, функция возвращает пустую строку.
Для управления класс имеет набор сигналов и слотов, которые привязываются к соответствующим событиям, происходящим в программной среде. Класс включает следующие сигналы:
· void connected() – данный сигнал посылается, когда удаленный хост был подключен к соединению;
|
· void disconnected() – данный сигнал испускается, когда этот класс был правильно отключен от удаленного хоста;
· void error(QSshSocket::SshError error) – данный сигнал испускается при возникновении ошибки. В качестве параметра указывается тип ошибки;
· void commandExecuted(QString command,QString response) – данный сигнал посылается, когда ответ от удаленного хоста принимается относительно команды. Параметром сигнала является ответ на команду, которая была выполнена;
· void loginSuccessful() – данный сигнал посылается, когда пользователь был зарегистрирован и подключен на удаленном хосте. Параметрами сигнала являются путь к локальному файлу, что удаленный файл был отправлен в очередь и путь к файлу добытого из удаленного хоста;
· void pushSuccessful(QString localFile, QString remoteFile) – данный сигнал посылается, когда локальный файл успешно перенесен на удаленный файл. Параметрами сигнала являются путь к локальному файлу отправленного на удаленный хост и путь к удаленному файлу, который локальный файл был отправлен;
· void workingDirectorySet(QString cwd) – данный сигнал посылается, когда устанавливается текущий рабочий каталог, который задан в виде параметра.
Класс использует слот запуска run().
Дополнительно класс содержит ряд частных констант и переменных, которые обеспечивают его работу.
Рисунок 3.12. – Схема взаимодействия планшета интерактивного моделирования с кластером семейства СКИФ, через класс QSshSocket
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!