Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2018-01-04 | 271 |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!