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);