zoukankan      html  css  js  c++  java
  • Qt定制开发2.文件传输模块PLUS(多线程后台版)


    基于文件传输模块做的一个简易的文件传输工具,仅需十分钟即可完成。

    1 简单介绍

    真实项目中使用,基于Qt开发的文件传输模块,后台版,可集成到任意的Qt工程中。

    • 支持多个线程的同时发送、接收文件,运行稳定可靠
    • 可以同时监听多个端口,也可以同时向多个端口发送文件
    • 提供Demo示例,接口足够简单,小白也能轻松驾驭
    • 提供了必要的信号,可以根据需要做一些界面显示

    2 使用方式

    通过单例对象调用接口,使用极其简单,例如FileHandler::instance()->sendFiles(),其它事情通通不用关心了,监听信号即可。

    2.1 发送文件

        /**
         * @brief sendFiles 发送指定目录的文件
         * @param dir 指定的目录
         * @param address 目标网络地址
         * @param port 目标端口
         */
        void sendFiles(const QDir &dir, const QHostAddress &address, quint16 port);
    
        /**
         * @brief sendFiles 发送指定的文件列表
         * @param fileList 指定的文件列表
         * @param address 目标网络地址
         * @param port 目标端口
         */
        void sendFiles(const QStringList &fileList, const QHostAddress &address, quint16 port);
    

    2.2 接收文件

        /**
         * @brief listen 打开监听
         * @param address 监听的主机地址
         * @param port 监听的端口
         * @param path 指定文件接收的目录
         * @return true:监听成功,false:监听失败
         */
        bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0, const QString &path = QString());
    

    2.3 提供的信号

        void errorOccurred(const QString &error);
        void sentBytesUpdated(qint64 totalBytes, qint64 bytesWritten);
        void receivedBytesUpdated(quint16 serverPort, qint64 bytesReceived);
    
        void sendingFileChanged(const QString &fileName);
        void receivingFileChanged(const QString &fileName);
    
        void fileSent(const QString &fileName);
        void fileReceived(const QString &fileName);
    
        void receiveFinished();
        void receiveStarted();
        void sendFinished(quint16 serverPort, qint64 ms);
    
    作者QQ:115124903,欢迎交流。
    推荐涛哥的QQ群,1群:734623697,2群:342341405,踏上Qt进阶之路。
  • 相关阅读:
    随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里
    phpmyadmin查看创建表的SQL语句
    thinkphp 3.2响应头 x-powered-by 修改
    Centos 7.0查看硬盘使用情况 命令
    centos 7.0安装花生壳
    centos 7.0 菜鸟接触命令 记录
    centos 7.0 ssh 登陆
    Sphinx 2.2.6 window下安装全过程 未完 持续标记~~~~
    c#多线程编程实战(原书第二版)文摘
    分布式锁的几种实现方式(转)
  • 原文地址:https://www.cnblogs.com/luoxiang/p/15806636.html
Copyright © 2011-2022 走看看