Qt下Tcp傳輸檔案

2021-10-05 06:45:24 字數 2805 閱讀 7437

#ifndef serverwidget_h

#define serverwidget_h

#include

#include

//監聽套接字

#include

//通訊套接字

#include

#include

namespace ui

class

serverwidget

:public qwidget

;#endif

// serverwidget_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_buttonfile_clicked()

//提示開啟檔案的路徑

ui->textedit-

>

(filepath)

; ui-

>buttonfile-

>

setenabled

(false);

ui->buttonsend-

>

setenabled

(true);

}else

}//傳送檔案按鈕

void serverwidget::

on_buttonsend_clicked()

else

}void serverwidget::

senddata()

; len =0;

//往檔案中讀資料

len = file.

read

(buf,

sizeof

(buf));

//傳送資料,讀多少,發多少

len = tcpsocket-

>

write

(buf, len)

;//傳送的資料需要累積

sendsize +

= len;

}while

(len >0)

;// //是否傳送檔案完畢

// if(sendsize == filesize)

//

}

#ifndef clientwidget_h

#define clientwidget_h

#include

#include

#include

namespace ui

class

clientwidget

:public qwidget

;#endif

// clientwidget_h

#include

"clientwidget.h"

#include

"ui_clientwidget.h"

#include

#include

#include

clientwidget::

clientwidget

(qwidget *parent)

:qwidget

(parent),ui

(new ui::clientwidget)

//彈出對話方塊,顯示接收檔案的資訊

qstring str =

qstring

("接收的檔案: [%1: %2kb]").

arg(filename)

.arg

(filesize/

1024);

qmessagebox::

information

(this

,"檔案資訊"

, str)

;//設定進度條

ui->progressbar-

>

setminimum(0

);//最小值

ui->progressbar-

>

setmaximum

(filesize/

1024);

//最大值

ui->progressbar-

>

setvalue(0

);//當前值

}else

//檔案資訊

//更新進度條

ui->progressbar-

>

setvalue

(recvsize/

1024);

if(recvsize == filesize)

//檔案接收完畢}}

);}clientwidget::

~clientwidget()

void clientwidget::

on_buttonconnect_clicked()

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

ui設計 源 伺服器與客戶端 ifndef serverwidget h define serverwidget h include include include include include namespace ui class serverwidget public qwidget endi...

QT中TCP實現檔案傳輸功能

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

QT的TCP協議編寫檔案傳輸

下面通過tcp協議通訊講解傳送檔案和接收檔案 一 客戶端作為檔案傳送端 1 思路步驟 連線伺服器 當連線成功後會傳送connected訊號 在槽函式中傳送檔案頭資訊 當資料傳送成功後會傳送byteswritten 在槽函式中傳送檔案內容 2 實現 如下 filesend.h ifndef files...