我试图让FTP-SSL与QT4.6.3一起工作.我已经用OpenSSL支持编译了Qt。有关于Qt的FTPS的好资源吗?QFtp似乎不提供SSL支持。我真的不想创建我自己的FTPS实现。
//编辑:我发现了QNetworkAccessManager (ty @ frank),但是我找不到任何有用的文档或使用它的SSL示例。这就是我想要做的:
QUrl url = QUrl("ftp://localhost/filex.txt");
url.setUserName("root");
url.setPassword("root");
QNetworkRequest request(url);
QSslConfiguration SslConfiguration(QSslConfiguration::defaultConfiguration());
request.setSslConfiguration(SslConfiguration);
manager->get(request);但是FileZilla不让我连接。FZ控制台说:
(000035)21.12.2010 17:31:46 -(未登录) (127.0.0.1)>用户根
(000035)21.12.201017:31:46-(未登录) (127.0.0.1)> 530ssl
FileZilla配置:
SSL/TLS上的enabled
我至少会期望一些sslErrors信号,因为用户/pw很好,SSL失败,但我只得到authenticationRequired信号。
谢谢你的帮忙!
发布于 2010-12-26 21:39:59
不幸的是,在Qt中没有针对FTPS的开箱即用解决方案。
QFtp实现了许多ftp命令,但不支持encryption.QNetworkAccessManager只支持基本ftp函数(文件下载/上传),在ftp情况下也不支持加密。值得一提的是,它确实支持对HTTP的加密,这是它主要设计的协议,for.QSslSocket实现了SSL,但没有像FTP或HTTP这样的特定协议
考虑到上述信息,我想到了一个想法:将QFtp和QSslSocket混合起来,以获得加密的FTP。问题是QFtp类没有允许QFtp使用用户提供的套接字的方法。通过比较,QHttp有这样一种方法- int QHttp::setSocket(QTcpSocket * socket)。
QNetworkAccessManager的设计者蒂亚戈·马西埃拉( Thiago )认为,方法是使用QSslSocket实现FTP协议。
https://stackoverflow.com/questions/4499373
复制相似问题