Използване на QFtp клас, Qt програмиране

Съдържание

  • Програмиране на мрежова поддръжка в Qt
  • Модел клиент-сървър
  • Внедряване на сървър с QTcpServer клас
  • Внедряване на клиент с помощта на класа QTcpSocket
  • Qftp клас
  • QHttp клас

За да улесни нещата,Qtпредоставя специализирани класовеQFtpиQHttp, базирани на класаQObject. Работата на тези класове е асинхронна, така че не е нужно да се страхувате, че приложението ще бъде блокирано, докато изпращате съобщения или получавате данни. За да получават информация за напредъка на изпълнението на командите, тези класове предоставят сигнали, които могат да бъдат свързани, например за визуално показване, къмsetProgress()слота на изпълнимия модул за индикатор за напредък. В края на операциите се изпраща сигналътdone().

Прехвърлянето на файлове е често извършвана операция в почти всички мрежи. FTP (протокол за прехвърляне на файлове) е най-известният от старите протоколи и една от първите мрежови услуги. Целта на този протокол беше да позволи на потребителите достъп до файлове на отдалечен компютър. В допълнение към предоставената услуга, протоколът има редица команди, които могат да се използват за управление на отдалечен компютър за пренос на данни. Например:

  • get - копиране на файл от отдалечен сървър;
  • put - копиране на файл на отдалечен сървър;
  • rmdir - изтриване на директория на отдалечен сървър;
  • mkdir - създаване на директория на отдалечен сървър;
  • cd - отваряне на директория на отдалечен сървър;
  • преименуване - преименуване на файл или директория на отдалечен сървър;
  • close - Затворете връзката към отдалечения сървър.

КласътQFtpимплементира FTP клиентската странапротокол и съдържа методи за най-често използваните FTP операции. Имената на тези методи съответстват на имената на FTP команди, например:get()съответства на командата get и put () съответства на командата put и т.н. Освен това класътQFtpпредоставя възможност за изпълнение на всякакви FTP команди. За да направите това, трябва да предадете низ, съдържащ необходимата команда, към методаrawCommand(). Например:

Всеки от методите връща идентификационен номер, който се използва в сигнали от класQFtp. Това може да се използва за уведомяване на потребителя за текущи операции. Например, в началото на изпълнението на една от командите, обект от класQFtpизпраща сигналcommandStarted(int), а когато командата приключи, се изпраща сигналcommandFinished(int,bool). В този случай идентификационният номер на изпълняваната операция се съдържа в параметъра типint.

КласътQFtpсъдържа методи за свързване към FTP сървъра:connectToHost(),login(). Списъкът демонстрира четене на файл index.txt, хостван на отдалечен компютър, с помощта на FTP команди и записването му в текущата директория като index.txt. За да направим това, първо създаваме QFile обект и отваряме файла за запис, след което изпълняваме серия от пет FTP команди. Обърнете внимание на втория аргумент на методаget(), който се използва за настройка на I/O устройството.

Клас на главния прозорец QMainWindow

QMainWindow е много важен клас, който имплементира главния прозорец, който съдържа типичните уиджети, необходими на повечето приложения, като менюта, секции на лентата с инструменти, работно пространство, ленти на състоянието. В този клас външният вид вече е подготвен и неговите джаджи. По-нататък.

Работа с файлове.QFile клас

Класът QFile е извлечен от класа QIODevice. Съдържа методи за работа с файлове: отваряне, затваряне, четене и запис на данни. Можете да създадете обект, като подадете низ, съдържащ името на файла в конструктора. Не можете да подадете нищо в конструктора, но го направете след създаването на обекта, като извикате метода. По-нататък.

Внедряване на сървър с QTcpServer клас

За внедряване на сървър, Qt предоставя удобен клас QTcpServer, който е проектиран да обработва входящи TCP връзки. Програмата, показана на фигурата, е реализация на прост сървър, който приема и потвърждава получаването на клиентски заявки. По-нататък.