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