Qt使用TCP傳輸檔案(帶UI)

2021-09-24 05:16:32 字數 2322 閱讀 7959

ui設計

源**(伺服器與客戶端)

#ifndef serverwidget_h

#define serverwidget_h

#include #include #include #include #include namespace ui

class serverwidget : public qwidget

;#endif // serverwidget_h

#ifndef clientwidget_h

#define clientwidget_h

#include #include #include namespace ui

class clientwidget : public qwidget

;#endif // clientwidget_h

#include "serverwidget.h"

#include "ui_serverwidget.h"

#include #include #include serverwidget::serverwidget(qwidget *parent) :

qwidget(parent),

ui(new ui::serverwidget)

});});

//定時器處理

connect(&timer, &qtimer::timeout, [=]());

}serverwidget::~serverwidget()

//選擇檔案

void serverwidget::on_buttonselect_clicked()

else

}else

}//傳送檔案

void serverwidget::on_buttonsend_clicked()

else

}void serverwidget::sendfile()

; len = 0;

len = file.read(buf, sizeof(buf));

len = tcpsocket->write(buf, len);

}while (len > 0);

}

#include "clientwidget.h"

#include "ui_clientwidget.h"

#include #include #include clientwidget::clientwidget(qwidget *parent) :

qwidget(parent),

ui(new ui::clientwidget)

); //伺服器write()會觸發客戶端qtcpsocket::readyread()訊號

connect(tcpsocket, &qtcpsocket::readyread, [=]());

}clientwidget::~clientwidget()

void clientwidget::on_pushbutton_clicked()

void clientwidget::receive()

qstring str = qstring("接收的檔案: [%1: %2 kb]").arg(filename).arg(filesize/1024);

}else //檔案內容處理

ui->progressbar->setvalue(currentsize/1024);

if(currentsize == filesize) //檔案傳輸完成的條件}}

#include "serverwidget.h"

int main(int argc, char *ar**)

3.實現效果

Qt下Tcp傳輸檔案

ifndef serverwidget h define serverwidget h include include 監聽套接字 include 通訊套接字 include include namespace ui class serverwidget public qwidget endif s...

CMake使用筆記 帶ui檔案的Qt程式

set cmake include current dir on 包含編譯目錄 aux source directory dlg dlg cpp 查詢指定目錄下的所有原始檔,然後將結果存進指定變數名 file glob file h 載入資料夾下的所有檔案 file glob dlg file dl...

QT中TCP實現檔案傳輸功能

實物圖 客戶端 傳送端 和服務端 接受端 為一體 部分 詳情 注釋詳細 widget.h ifndef widget h define widget h include include include include namespace ui class widget public qwidget ...