- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFCFTP文件传输
大学研究生堂下考试答卷
2014-2015学年第 1 学期
考试科目
姓 名
年 级
专 业
2014年 12月 28日
《面向对象程序设计》课程报告
学号: 姓名: 学院:
题目 基于MFC的聊天室与FTP文件传输系统 选
题
背
景 首先经过一个学期关于C++的学习,我们希望能够运用所学的知识做出一些具有使用价值的产品。另外,由于本身专业是通信工程,基于对通信软件编程方面兴趣,希望能够在完成课程设计的同时能够加深自己对通信底层原理的理解。因此我们选择的题目是基于MFC的网络聊天室与FTP文件传输的编程。并且希望最后编写好的程序能够在同学之间进行交流以及文件共享方面具有一定的实用价值。最后,希望在完成编程的过程中提高自己C++方面的能力以适应今后的学习与发展。 实现的功能:
1. 支持多个客户端与服务器端之间的连接。
2. 支持客户端与客户端之间的通信。
3. 支持服务器端与客户端之间的通信。
4. FTP客户端方面支持文件的下载、上传、以及删除的功能。
5. FTP文件传输方面拥有两个客户端,一个是用于单线程的,另一个是用于多线程的,本实例对两个客户端的工作方式进行了对比。
实现环境及开发工具
1.windows 7/8.1操作系统(实现环境)
2.visual studio2010/2013(开发工具)
3.MSDN2008(帮组文档)
4.StarUML(UML制图工具) 基
础
知
识 由于本实例是通信网络编程,使用到了很多网络通信方面的知识,其中包括WinSock编程以及Inet编程下面介绍一下两类编程的基础知识
一Sock编程
2.套接字工作过程
由于本实例是采用C/S模式进行编程,是由客户端与服务器端组成的。流式套接字与报文套接字编程的原理是不一样的。
①流式套接字原理
流式套接字是面向连接的,在进行数据传输之前需要在服务器与客户端之间先建立起连接。其建立连接的过程主要分为四步。
i.服务器端初始化套接字并绑定端口。
ii.服务器端套接字启动监听状态,调用Listen()函数。
iii.客户端端建立套接字并绑定端口。
iv.客户端请求连接。
v.服务器端接受连接请求。
其工作过程见图1.1。
图1.1:流式套接字工作过程
②报文套接字工作原理
报文套接字不需要在数据传输之间建立连接,只需绑定对应的端口然后将数据发往对应的网络地址即可。其工作过程见图1.2。
图1.2:报文套接字工作过程
Inet编程
WinInet是windows internet扩展应用程序高级编程接口,是专为开发具有Internet功能的客户机端应用程序而提供的。它有两种形式:WinInet API包含一个C语言的函数集,MFC WinInet类则是对前者的面向对象的封装。WinInet主要用于Internet关于FTP文件传输协议,HTTP超文本传输协议以及Gopher文件传输协议。
①MFC中WinInet包含的类
i.CinternetSession类:由CObject类派生,代表应用程序的一次Internet会话,每个访问Internet的应用程序都需要一个CInternetSession类对象。
ii.连接类:连接类主要包括CinternetConnection类以及它的派生类CFtpConnection类、CHttpConnection类和CGopherConnection类。
iii.文件类:包括CInternetFile类以及它派生的CHttpFile类和CGopherFile类,另外文件查找类CFileFind也是文件类。
iv.CInternetException类:MFC WinInet类的成员函数在执行时所发生的错误或异常,往往用try/catch逻辑结构来处理异常。
②WinInet编程的步骤
i.创建CInternetSession类对象,创建并初始化Internet会话
ii.创建连接对象类,建立CInternetSession对象与网络服务器的连接,也就是应用程序与服务器的连接。本实例创建CFtpConnection类。
iii.创建文件检索类,对文件进行检索。
iv.创建异常类CInetnetException类,处理错误。
v.关闭各种类,释放资源。
三多线程编程
Windows本身是一个多进程多线程的操作系统,因此在日常的应用编写中最好能够使用多线程的技术。在windows环境下开发多线程应用程序可以利用提供的Win32API接口函数,也可以利用微软提供的MFC类库进行开发。两种方式对于多线程编程原理是一样的,用户可以根据需要选择相应的工具。本实例主要用到的是
您可能关注的文档
- K水泥公司采购管理策略分析开题报告优秀毕业生.doc
- KZC6说明书.doc
- LANCEUltracAMP384中文说明书完全版.docx
- LB型安装使用说明书.doc
- L298详细使用说明.doc
- LAMMPSin文件注意事项及详细解释.doc
- LC-2标准说明书(最新).doc
- LBQ-III漏电保护器测试仪说明书.doc
- CentOS7双机热备(pgpoolreplication).doc
- LCH-WXDH小电流说明书.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)