socket 服务器多线程文件传输,实现基于多线程的文件传输

源代码

我在代码里面都有非常详细的注释,所以就直接放上代码啦

1 客户端

头文件 mainwindow.h

ifndef MAINWINDOW_H

define MAINWINDOW_H

include

QT_BEGIN_NAMESPACE

namespace Ui { class MainWindow; }

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{Q_OBJECT

public:MainWindow(QWidget *parent = nullptr);

~MainWindow();

signals:void startConnect(unsigned short,QString);

// 发送文件信号

void sendFile(QString path);

private slots:void on_connectServer_clicked();

void on_selFile_clicked();

void on_sendFile_clicked();

private:Ui::MainWindow *ui;

};

endif // MAINWINDOW_H

源文件 mainwindow.cpp

include "mainwindow.h"

include "ui_mainwindow.h"

include

include

include "sendfile.h"

include

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)

, ui(new Ui::MainWindow)

{ui->setupUi(this);

// 设置IP和端口

ui->ip->setText("127.0.0.1");

ui->port->setText("8989");

// 设置进度条

ui->progressBar->setRange(0,100);

ui->progressBar->setValue(0);

// 客户端在子线程中连接服务器

// 创建线程对象

QThread* t = new QThread;

// 创建任务对象

SendFile* worker = new SendFile;

// 将worker移动到子线程t中

worker->moveToThread(t);

// 当发送sendFile信号,让worker的sendFile函数处理(子线程)

connect(this,&MainWindow::sendFile,worker,&am

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值