首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT4.6中的FTPS (FTP-SSL)

QT4.6中的FTPS (FTP-SSL)
EN

Stack Overflow用户
提问于 2010-12-21 12:45:01
回答 1查看 3.3K关注 0票数 5

我试图让FTP-SSL与QT4.6.3一起工作.我已经用OpenSSL支持编译了Qt。有关于Qt的FTPS的好资源吗?QFtp似乎不提供SSL支持。我真的不想创建我自己的FTPS实现。

//编辑:我发现了QNetworkAccessManager (ty @ frank),但是我找不到任何有用的文档或使用它的SSL示例。这就是我想要做的:

代码语言:javascript
复制
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

  • Explicit

  • FTP支持基于TLS的 FTP启用
  • 纯加密FTP disallowed
  • SSL,强制用于根登录

我至少会期望一些sslErrors信号,因为用户/pw很好,SSL失败,但我只得到authenticationRequired信号。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-26 21:39:59

不幸的是,在Qt中没有针对FTPS的开箱即用解决方案。

  • QFtp实现了许多ftp命令,但不支持encryption.
  • QNetworkAccessManager只支持基本ftp函数(文件下载/上传),在ftp情况下也不支持加密。值得一提的是,它确实支持对HTTP的加密,这是它主要设计的协议,for.
  • QSslSocket实现了SSL,但没有像FTP或HTTP

这样的特定协议

考虑到上述信息,我想到了一个想法:将QFtpQSslSocket混合起来,以获得加密的FTP。问题是QFtp类没有允许QFtp使用用户提供的套接字的方法。通过比较,QHttp有这样一种方法- int QHttp::setSocket(QTcpSocket * socket)

QNetworkAccessManager的设计者蒂亚戈·马西埃拉( Thiago )认为,方法是使用QSslSocket实现FTP协议。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4499373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档