计算机视觉课程设计.docx

上传人:lao****ou 文档编号:1118569 上传时间:2024-11-20 格式:DOCX 页数:12 大小:57.30KB
下载 相关 举报
计算机视觉课程设计.docx_第1页
第1页 / 共12页
计算机视觉课程设计.docx_第2页
第2页 / 共12页
计算机视觉课程设计.docx_第3页
第3页 / 共12页
计算机视觉课程设计.docx_第4页
第4页 / 共12页
计算机视觉课程设计.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机视觉课程设计.docx》由会员分享,可在线阅读,更多相关《计算机视觉课程设计.docx(12页珍藏版)》请在第一文库网上搜索。

1、课程设计说明书此设计模板的红色部分都是你要修改的,小标题可以酌情增删这句话删掉学生信息课程设计信息课程名称计算机视觉课程设计课程设计题目智能相册课程设计时间8周小组情况一人一组指导教师董帅批改情况1 .课程设计内容32 .课程设计目的33 .背景知识34 .工具/准备工作35 .设计步骤与方法45.1. 步骤1:设计客户端与服务器端的通信协议45.1.1, 步骤1.1:客户端与服务器端的交互协议设计45.1.2, 步骤1.2:服务器端与客户端数据交互协议45.2. 步骤2:编写服务器端45.2.1, 步骤2.1:设计服务器的多用户响应45.2.2, 步骤22设计服务器服务线程55.3. 步骤3

2、:客户端设计75.4. 步骤3:设计程序的界面106 .软件测试截图117 .设计结果及分析128 .设计结论129 .问题及心得体会1210 .对本设计过程及方法、手段的改进建议1211 .任务分配错误!未定义书签。12 .参考文献1213 .课程设计评价(教师)12如果你修改了下面的标题,请更新目录的域,并删掉这句话课程设计报告1 .课程设计内容本课程设计的内容是设计一个基于QT的文件传输软件,支持多用户以及文件的断点续传。2 .课程设计目的考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。3 .背景知识TCP/IP协议的原理QT软件的应用4 .工具/准备工作硬件:安装有VS20

3、12的PC机一台软件:Windows10操作系统VS2012Opencv3.1.45 .设计步骤与方法5.1. 步骤1:设计客户端与服务器端的通信协议1、客户端与服务器端的请求协议2、服务器端与客户端数据交互协议5.1.1. 步骤1.1:客户端与服务器端的交互协议设计I帧总长|请求类型|参数|说明:请求下载列表I帧总长I列表IXI请求下载文件I帧总长I文件I文件路径|文件传输起始位|5.1.2. 步骤1.2:服务器端与客户端数据交互协议I帧总长I列表/文件I数据I52步骤2:编写服务器端521步骤2.1:设计服务器的多用户响应重写了QTCPSerVer的虚函数,实现了每当一个客户端访问服务器是

4、,开启一个线程响应客户端的请求。voidDown1oadServer:incomingConnection(inthand1e)Down1oadThread*Thread=newDown1oadThread(hand1e,this);Thread-start();)5.2.2.步骤2.2:设计服务器服务线程在这个函数中,线程主要负责两件事情,一、完成对客户端请求的解析;二、响应客户端请求。voidDown1oadThread:run()(qint64nextB1ockSize;QStringReqFi1eName;qint64ReqFiIeStartPos5BytesRemaining;QTc

5、pSocketToC1ient;ToC1ient.setSocketDescriptor(hande1);ToC1ient.waitForReadyRead();nextB1ockSize=0;QByteArrayOutBIock;QDataStreamout(&OutB1ock,QIODevice:WriteOn1y);out.setVersion(QDataStream:Qt_4_6);QDataStreamin(&ToC1ient);in.setVersion(QDataStream:Qt_4_6);if(nextB1ockSize=0)(if(ToC1ient.bytesAvai1ab

6、1e()sizeof(qint64)return;innextB1ockSize;Jif(ToC1ient.bytesAvai1ab1e()ReqType;switch(ReqType)/确定客户端的请求(caseReq_1ist:下载列表请求OutB1ock.c1ear();outqint64(0)qint64(0)seek(0);outReqFi1eName;inReqFi1eStartPos;printf(ReqFi1eName+,+QString-number(ReqFi1eStartPos)+,n,);QFi1e*ReqFi1e=newQFi1e(ReqFi1eName);ReqFi

7、1e-open(QIODevice:ReadOn1y);ReqFi1e-seek(ReqFi1eStartPos);BytesRemaining=ReqFi1e-size();OutB1ock.c1ear();outqint64(0)qint64(2)seek(0);outatEnd()Printf(BytesRemaining:+QString:iWmber(ByteSRemaining)+n);QByteArray_data,fi1edat;QDataStreamFi1eB1ock(&_data,QIODevice:WriteOn1y);Fi1eB1ock,setVersion(QData

8、S1ream:Qt_4_6);fiIedat=ReqFi1e-read(Fi1eB1ockSize);Fi1eB1ockqint64(0)qint64(1)seek(0);Fi1eB1ockseek(0);outqint64(ReqB1ock.size()-sizeof(qint64);break;caseDown1oad_Fi1e:outqint64(0)qint64(Down1oad-Fi1e)Fi1eNameseek(0);outopen(Q1ODevice:Writeon1yIQ1ODevice:Append);break;defau1t:break;);ToServer-write(

9、ReqB1ock);)等待服务器传来的数据voidMyC1ient:getData()(qint64FrameType;QDataStreamin(ToServer);in.setVersion(QDataStream:Qt_4_6);foreverprintf(QString:number(ToServer-bytesAvai1ab1e()+nn);if(nextB1ockSize=O)if(ToServer-bytesAvai1ab1e()nextB1ockSize;printf(,size+QStringnumber(nextB1ockSize)+,n);)if(FiextB1ockSize=qint64(0xFFFFFFFF)(printf(ubreak2nH);QMessageBoxmsgBox;msgBox.Set1con(QMessageBoxizInfbrmation);msgBox.setText(Transmisiondone!1);msgBox.exec();nextB1ockSize=O;break;if(ToServer-bytesAvai1ab1e()FrameType;printf(,typez,+QStngnumber(FrameT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服