Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Ноябрь 12, 2015, 10:21



Название: кроссплатформенный ftps клиент
Отправлено: koldun90 от Ноябрь 12, 2015, 10:21
Здравствуйте собираюсь начать писать кроссплатформенный ftps( с использованием шифрования данных SSL/TLS) клиент
пишу под qt 4.8 подскажите какие классы использовать для создания кроссплатформенного ftp клиента....
клиент будет использоваться на windows и linu...


Название: Re: кроссплатформенный ftps клиент
Отправлено: ksk- от Ноябрь 12, 2015, 10:31
Смотри модуль QtNetwork. Найдёшь всё, что нужно.


Название: Re: кроссплатформенный ftps клиент
Отправлено: koldun90 от Ноябрь 12, 2015, 12:37
решил начать как бы пробы c qftp создал небольшой проект но сигналы не ловятся
консольное приложение
main.cpp
Код
C++ (Qt)
#include <QCoreApplication>
#include <myftp.h>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   myftp ftp;
   return a.exec();
}
 

myftp.h
Код
C++ (Qt)
#ifndef MYFTP_H
#define MYFTP_H
 
#include <QObject>
#include <QFtp>
#include <QUrlInfo>
#include <iostream>
 
class myftp : public QObject
{
   Q_OBJECT
public:
   explicit myftp(QObject *parent = 0);
   QFtp a;
 
signals:
 
public slots:
   void con();
   void poluchob(QUrlInfo);  //ÐÏÌÕÞÅÎÉÅ ÆÁÊÌÁ ÉÌÉÐÁÐËÉ ÎÁÈÏÄÑÝÉÓÑ × ÚÁÄÁÎÎÏÊ ÄÉÒÅËÔÏÒÉÉ
   void poluchif(int);
   void kk(int,bool);
 
 
 
};
 
#endif // MYFTP_H
 

myftp.cpp

Код
C++ (Qt)
#include "myftp.h"
 
myftp::myftp(QObject *parent) :
   QObject(parent)
{
//ËÏÎÓÔÒÕËÔÏÒ
   con();
}
 
//ËÏÎÎÅËÔ Ë ÓÅÒ×ÅÒÕ
 
void myftp::con()
{
   QFtp ftp;
   connect(&ftp,SIGNAL(stateChanged(int)),this,SLOT(poluchif(int)));
   connect(&ftp,SIGNAL(commandStarted(int)),this,SLOT(poluchif(int)));
   connect(&ftp,SIGNAL(commandFinished(int,bool)),this,SLOT(kk(int,bool)));
   connect(&ftp,SIGNAL(listInfo(QUrlInfo)),this,SLOT(poluchob(QUrlInfo)));
   ftp.connectToHost(QString("10.4.13.65"),21);
   ftp.login(QString("root"),QString("12345678"));
   ftp.cd("manag");
   ftp.list();
 
}
 
void myftp::poluchob(QUrlInfo url)
{
   std::cout<<QString(url.name()).toStdString()<<std::endl;
}
 
void myftp::poluchif(int r)
{
   std::cout<<QString(r).toStdString()<<std::endl;
}
 
void myftp::kk(int a,bool ok)
{
   //std::cout<<QString(url.name()).toStdString()<<std::endl;
}

проблема в том что не испускается ни один сигнал(не выполняется ни один слот) в чем может быть проблема....
делаю в линуксе...

может быть я не правильно использую сигнально слотовую систему в консольном приложении??


Название: Re: кроссплатформенный ftps клиент
Отправлено: Hellraiser от Ноябрь 12, 2015, 13:46
Не смущает, что объект класса QFtp самоудаляется после завершения работы конструктора myftp?