Qt 二维码文件传输工具

利用二维码实现文件从电脑传输到手机。代码开源,放在了Coding,有兴趣的话可以看一下。
工程是用Qt+QZXing写的,所以电脑端软件具有跨平台的能力;虽然手机端也是用Qt写的,但是针对安卓做了一些平台化的东西,要在IOS上用的话,估计要修改一些东西。
最新版本的Qt配置安卓编译环境时有点麻烦,具体请查看另外一篇博文:https://blog.csdn.net/joyopirate/article/details/111398898

全程无需联网,无需wifi,无需蓝牙,无需串口(前提是电脑已经安装了本工具的电脑端软件)。
本工具分为电脑端以及手机端。
电脑端负责将文件切块并编码成二维码,手机端负责对二维码序列进行解码并合成文件副本,保存在手机SD的根目录下的QRReceiver目录中。
但是由于一张二维码所包含的信息较少(目前我测试的只能包含100个字符左右),所以目前该工具只能进行一些小文件的传输;大文件会生成几万几十万张二维码,识别完需要很长时间。

简单流程为:电脑端经过QFile以二进制读取文件,将数据用qCompress压缩,将数据分成n等分(每份100字节左右),将每份数据编号并将数据toBase64经由QZXing变成二维码;手机端通过QCamera获取后置摄像头数据,对每一张二维码解码,将二维码解码得到的数据fromBase64,然后qUncompress,将数据缓存到一个Map中,等所有数据接收完之后,合成一个文件,保存在目录下。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
QT是一种跨平台的开发框架,提供了丰富的功能和库,可以方便地实现局域网文件传输功能。 首先,我们可以利用QT的网络模块来进行局域网文件传输。通过建立TCP连接,可以实现可靠的数据传输。我们可以使用QT提供的QTcpSocket类来实现客户端和服务器端之间的通信。客户端可以向服务器端发送请求,并将文件内容通过套接字发送给服务器端,服务器端接收到文件内容后,可以保存文件到指定的位置。在这个过程中,我们可以使用QT提供的QFile类来读取和写入文件。 另外,QT还提供了QUdpSocket类,可以实现UDP协议的通信。UDP协议在局域网中的传输速度较快,可以用于实现快速的文件传输。通过使用QUdpSocket类,可以将文件分成小块进行传输,然后在接收端进行重组,最终得到完整的文件。在UDP传输中,服务器端需要绑定IP地址和端口号,客户端则需要知道服务器端的IP地址和端口号。 此外,我们还可以使用QT提供的QNetworkAccessmanager类实现文件的下载和上传。通过QUrl类可以指定要下载或上传的文件的URL地址,然后通过QNetworkRequest类和QNetworkReply类来发送请求和接收响应。可以使用QNetworkReply类获取文件内容并保存到本地。 总之,利用QT的网络模块,我们能够方便地实现局域网文件传输功能。无论是通过TCP还是UDP协议,或是使用QNetworkAccessmanager类,QT都提供了丰富的功能和类库来满足我们的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值