Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2018-01-04 | 312 |
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
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!