资源简介
TCPFileAns.zip
代码片段和文件信息
#include “clientwidget.h“
#include “ui_clientwidget.h“
#include
#include
#include
ClientWidget::ClientWidget(QWidget *parent) :
QWidget(parent)
ui(new Ui::ClientWidget)
{
ui->setupUi(this);
tcpSocket = new QTcpSocket(this);
isStart = true;
ui->progressBar->setValue(0); //当前值
setWindowtitle(“客户端“);
connect(tcpSocket &QTcpSocket::connected
[=]()
{
//提示连接成功
ui->textEdit->clear();
ui->textEdit->append(“和服务器连接成功,等待服务器传送文件……“);
}
);
connect(tcpSocket &QTcpSocket::readyRead
[=]()
{
//取出接收的内容
QByteArray buf = tcpSocket->readAll();
if(true == isStart)
{//接收头
isStart = false;
//解析头部信息 QString buf = “hello##1024“
// QString str = “hello##1024#mike“;
// str.section(“##“ 0 0)
//初始化
//文件名
fileName = QString(buf).section(“##“ 0 0);
//文件大小
fileSize = QString(buf).section(“##“ 1 1).toInt();
recvSize = 0; //已经接收文件大小
//打开文件
//关联文件名字
file.setFileName(fileName);
//只写方式方式,打开文件
bool isOk = file.open(QIODevice::WriteOnly);
if(false == isOk)
{
qDebug() << “WriteOnly error 49“;
tcpSocket->disconnectFromHost(); //断开连接
tcpSocket->close(); //关闭套接字
return; //如果打开文件失败,中断函数
}
//弹出对话框,显示接收文件的信息
QString str = QString(“接收的文件: [%1: %2kb]“).arg(fileName).arg(fileSize/1024);
//QMessageBox::information(this “文件信息“ str);
ui->textEdit->append(str);
ui->textEdit->append(“正在接收文件……“);
//设置进度条
ui->progressBar->setMinimum(0); //最小值
ui->progressBar->setMaximum(fileSize/1024); //最大值
ui->progressBar->setValue(0); //当前值
}
else //文件信息
{
qint64 len = file.write(buf);
if(len >0) //接收数据大于0
{
recvSize += len; //累计接收大小
qDebug() << len;
}
//更新进度条
ui->progressBar->setValue(recvSize/1024);
if(recvSize == fileSize) //文件接收完毕
{
//先给服务发送(接收文件完成的信息)
tcpSocket->write(“file done“);
ui->textEdit->append(“文件接收完成“);
QMessageBox::information(this “完成“ “文件接收完成“);
file.close(); //关闭文件
//断开连接
tcpSocket->disconnectFromHost();
tcpSocket->close();
}
}
}
);
}
ClientWidget::~ClientWidget()
{
delete ui;
}
void ClientWidget::on_buttonConnect_clicked()
{
//获取服务器的ip和端口
QS
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-10-11 14:24 06_TCPFileAns\
文件 3721 2016-01-11 14:23 06_TCPFileAns\clientwidget.cpp
文件 668 2016-01-06 10:03 06_TCPFileAns\clientwidget.h
文件 3428 2016-01-11 14:22 06_TCPFileAns\clientwidget.ui
文件 254 2016-01-05 17:18 06_TCPFileAns\main.cpp
文件 4672 2016-01-06 10:21 06_TCPFileAns\serverwidget.cpp
文件 873 2016-01-05 17:00 06_TCPFileAns\serverwidget.h
文件 2539 2016-01-11 14:24 06_TCPFileAns\serverwidget.ui
文件 482 2016-01-11 14:14 06_TCPFileAns\TCPFile.pro
- 上一篇:无线自组织网络论文.rar
- 下一篇:基于Qt实现的多人聊天
相关资源
- 尚硅谷大数据.docx
- QQ音乐在线播放与.zip
- 淘淘商城网盘地址.txt
- 人机交互.docx
- 每特教育.zip
- new2.txt
- 111.txt
- 临时手机.rar
- Arduino多任务同时进行.rar
- 马哥Linux2016全套视频教程及随堂笔记
- cqsjh5资源和搭建教程.docx
- 传奇h5源码云盘地址加教程.docx
-
EffectPla
yer.rar - code.zip
- 广陵散ssh.txt
- 70myeclipse-ci-2018.8.0.txt
- C2J.exe
- Kotlin打造完整电商APP模块化MVP主流框
- 《爬虫入门到精通课程》视频课件.
- 计算机毕业论文.doc
- LED屏.rar
- 测试用例模板.xlsx
- 视频地址.txt
- 详见里面的内容.txt
- 网盘地址.rar
- 30781mpvue-citypicker.rar
- 即时通信.zip
- 北京大学数字电路实验电路仿真数字
- hws.dll
- Burp_suite_Pro_v2.1.txt
评论
共有 条评论