Qt定制开发2.文件传输模块PLUS(多线程后台版)

1 简单介绍

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

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

2 使用方式

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章