QFtp在QT5版本下使用时遇到部分问题解决方案

本文详细介绍了在Qt中QFtp和QNetworkAccessManager的使用,尤其是在线程环境下处理断网及同步等待问题的解决方案。通过自定义同步阻塞和断网重连机制,确保了FTP操作的稳定性和可靠性。

QFtp

       QFtp在QT5版本之后就被QNetworkAccessManager代替,但是QNetworkAccessManager仅支持ftp的上传put和下载get,对于没有需要ftp以下功能的还是建议使用QNetworkAccessManager,主要包括:list()、cd()、remove()、mkdir()、rename()、rawCommand()

       QFtp的所有命令都会返回一个唯一标识符,允许跟踪当前正在执行的命令。当命令开始执行时,发出commandStarted()信号;当命令完成时发送commandFinished()信号,并带有命令标识符和bool类型参数,以便表示该命令有没有执行成功。但是在线程情况下,断网重连后会出现其他问题。需要特殊处理。

       QFtp工作机制是异步的,所以没有阻塞函数,如果需要同步的、序列的执行某些操作就需要自己实现同步阻塞。还有一种情况,在网络正常的情况下保证同步执行就没有问题了,网络不正常的情况下还会出现另一种情况,整个QFtp的socket停止工作了,并且会清空list执行列表

QFtp 不包含示例源码下载:QFtp无示例源码下载

QFtp 含示例源码下载:

GitHub 网址下载 https://github.com/qt/qtftp
命令下载 git clone https://github.com/qt/qtftp

       本博客旨在讲,QFtp在线程情况下出现断网以及需要同步等待的情况下的个人处理方案:

常规QFtp使用方式:

new QFtp
// 绑定信号槽
// 实现槽函数
ftp->connectToHost(**IP**, *
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值