ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:221.52KB ,
资源ID:4117294      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4117294.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(局域网文件传输系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

局域网文件传输系统.docx

1、局域网文件传输系统学号2013-2014学年 第二学期1008210112局域网文件上下传系统课程设计报告题目:局域网文件上下传系统专业:计算机科学与技术班级:10级计科(2)班姓名:黄云霞指导教师:彭飞成绩:计算机与信息工程系 2014年 5月 22日局域网文件传输系统摘要随着国内外各公司企业的发展壮大和这些企业和公司在办公中更加频繁的使用网络作为公司信息交流的渠道,局域网络在人们的工作和生活中得到了充足的发展。本课题旨在培养学生利用现有技术进行实际动手的能力,并使得学生能够深入了解局域网在文件传输方面的应用。局域网小到网内只有两台PC机,大到一个企业的内部网络,它们最主要的功能在于交流和传

2、输文件,并且安全性高、速度快、准确性高。鉴于局域网有如上优点,开发一个方便快捷的局域网文件传输系统是很有意义的,它在文件传输方面的高效准确将会提高企业的办事效率,为企业节省开支,为家庭用户提供方便。关键词 TCP/IP协议;C/S结构;Windows Sockets编程;VC+目录摘要 2Abstract 3第1章 绪论 61.1 选题背景 61.2 国内外研究现状 61.3 课题研究的意义 61.4 论文研究内容 6第2章 理论知识 82.1 TCP/IP协议 82.1.1 网络接口层 82.1.2 网络层 82.1.3 传输层 82.1.4 应用层 92.2 C/S架构 92.2.1 C/

3、S架构的概念 92.2.2 C/S架构的具体操作步骤 102.3 VC可视化编程环境 102.4 Windows Socket编程知识 112.4.1 Windows Socket的发展 112.4.2 Windows Sockets的分类 112.4.3 Windows Sockets API 112.5 本章小结 12第3章 软件设计 133.1局域网文件传输系统程序设计 133.2 局域网文件传输系统设计步骤 143.3 设计客户端所用到的函数 243.4 设计服务器所用到的函数 243.5 消息与消息函数 243.6 功能按钮与函数的对应关系 25第4章 软件测试 264.1 程序的安

4、装与运行 264.2 在局域网内传输文件测试 264.2.1 设置服务器 264.2.2 设置客户机并传输文件 274.3 本章小结 30第5章 结论 31参考文献 32第1章 绪论1.1 选题背景随着国内外各公司企业的发展壮大和这些企业和公司在办公中更加频繁的使用网络作为公司信息交流的渠道,局域网络在人们的工作和生活中得到了广泛的发展。本课题旨在培养学生利用现有技术进行实际动手的能力,并使得学生能够深入了解局域网在文件传输方面的应用。局域网小到网内只有两台PC机,大到一个企业的内部网络,它们最主要的功能在于交流和传输文件,并且安全性高、速度快、准确性高。鉴于局域网有如上有点,开发一个方便快捷

5、的局域网文件传输系统是很有意义的,它在文件传输方面的高效准确将会提高企业的办事效率,为企业节省开支,为家庭提供方便。本论文所设计的局域网文件传输系统通过局域网内用户的主机名、IP地址和工作组的名称确定了需要传输文件的双方,进而以C/S模式通过TCP/IP协议实现双方文件的传输功能。1.2 国内外研究现状大型局域网广泛存在于国内外大型企业中,而大部分企业还是通过Internet等等外网或者U盘等硬件来传输文件,只有少数企业针对该企业的特点设计了自己的文件传输系统,总的来说在企业内部发展局域网文件传输系统还有很大的发展空间。从1969年美国国防部高级研究计划管理局( ARPA - - Advanc

6、ed Research Projects Agency )建立了一个命名为ARPAnet的网络开始到今日,网络发展已走过足足50年的时间,在这漫长的时间里,局域网文件传输系统也得到了相应的发展,现在正处于高速发展阶段,这从现今市面上流行的腾讯QQ、飞鸽传书等可见一斑。可以想象,在不久的将来,以内部网络为中心的资源共享系统将在全世界的信息流动中占有到举足轻重的地位。1.3 课题研究的意义本课题使学生了解局域网在实际工作和生活中的应用,通过让学生自己动手开发比较简单局域网文件传输系统来强化学生的理论知识,培养学生的实际动手能力。另外,本课题也使得学生对软件开发有了一个感性的认识,为我们在日后的工作

7、中进一步设计更复杂的系统打下了基础。1.4 论文研究内容用Microsoft visual C+ 6.0软件开发一个以C/S模式通过TCP/IP协议实现点到点文件传输的简单的局域网文件传输系统软件。该软件传输的文件格式包括文本文档(txt)、图片(JPG)和压缩包(.rar)等等。该传输系统运行的操作系统平台为Windows XP 或者Windows 7,在传输文件之前,需要将多台(=2台)电脑通过路由器或者交换机用网线连接在一起,为各台PC机设置好IP并建立一个工作组。在这些电脑上分别安装局域网文件传输系统并运行,实现文件传输的具体步骤如下:1、 在工作组内的所有PC机上运行该软件,并将其中

8、一台PC机设置为服务器。2、 在设置为服务器的PC机上打开要发送的文件。3、 输入要接受文件的PC机的IP地址号、端口号,并连接服务器。4、 发送文件。第2章 理论知识这一章介绍开发局域网文件传输系统所涉及到的理论知识,包括TCP/IP协议,C/S架构, VC可视化编程环境,Windows Socket编程。2.1 TCP/IP协议TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由

9、网络层的IP协议和传输层的TCP协议组成的。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。 具体介绍如下2.1.1 网络接口层物理层定义物理介质的各种特性:1、机械特性;2、电子特性;3、功能特性;4、规程特性。 数据链路层是负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交

10、给IP层。 常见的接口层协议有: Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM 等。 2.1.2 网络层网络层负责相邻计算机之间的通信。其功能包括三方面。 (1)、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。 (2)、处理输入数据报:首先检查其合法性,然后进行寻径-假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。 (3)、处理路径、流控、拥塞等问题。 2.1.3 传输层传输

11、层负责提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。 2.1.4 应用层应用层负责向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝

12、功能。 应用层一般是面向用户的服务。如FTP、TELNET、DNS、SMTP、POP3。 2.2 C/S架构2.2.1 C/S架构的概念C/S即Client/Server结构,是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有

13、的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。 C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个: 1、只适用于局域网。而随着

14、互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。 2、客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。 3、 对客户端的操作系统一般也会有限制。2.2.2 C/S架构的具体操作步骤客户/服务器模式在操作过程中采取的是主动请求方式。1、服务器方的具体操作步骤如下:(1)、首先服务器方

15、要先启动,并根据请求提供相应服务。(2)、打开一个通信通道并告知本地主机,它愿意在某一端口上接收客户请求。(3)、等待客户请求到达该端口。(4)、接收到重复请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此进程与客户的通信链接,并终止该进程。(5)、返回第二步,等待另一客户请求。(6)、关闭服务器。2、.客户方的主要操作步骤如下:(1)、打开一通信通道,并链接到服务器所在主机指定端口。(2)、向服务器发服务请求报文,等待并接收应答;继续提出请求。(3)、请求结束后关闭通信通道并终止。2.3

16、VC可视化编程环境在Microsoft Visual C+ 6.0开发环境Developer Studio 是在Windows 98/2000/XP/7环境下运行的一套集成工具,由文本编辑、资源编辑器、项目建立工具、优化编辑器、增量连接器、源代码浏览器、集成调试器等组成。Visual C+ 6.0的软、硬件配置需求如下:1、 操作系统:Windows 98、Windows2000、Windows XP或者Windows 7及更高版本。2、 内存:根据不同操作系统设定,最好在128M以上。3、 硬盘:最小需要300MB以上空间。4、 CD-ROM驱动器(用于联机信息)。2.4 Windows S

17、ocket编程知识2.4.1 Windows Socket的发展在Intel、Microsoft、Sun、SDI、Informix、Novell等公司的大力支持下,Windows Socket(以下简称WinSock)从1991年的1.0版发展到1996年的2.2版。如今WinSock已经成为Windows网络编程的标准。2.4.2 Windows Sockets的分类WinSock编程分为同步(Sync)和异步(Async)。同步方式指的是发送方不等接收方响应,便接着发下一个数据包得通信方式。同步方式逻辑清晰,编程专注于应用,在抢先式的多任务操作系统中(Win NT、Win 2000),采用

18、多线程方式效率基本达到异步方式的水平。而异步指发送方发出数据以后,等收到接收方发回的响应,才发出下一个数据包的通信方式。阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网路调用上,比如调用recv()函数读取网路缓冲区中的数据,如果没有数据到达,将一直用recv()这个函数调用上,知道读到一些数据,此函数才返回;而非阻塞套接字是指此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中的数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件中,异步非阻塞套接字是用的最多的。平常所用的C/S结构软

19、件用到的就是异步非阻塞模式的。2.4.3 Windows Sockets APIWindows提供了一系列的API来支持Sockets,主要包括两类,一类是berkeley类型的函数,另一类是已经认可的作为Windows Sockets 2的一部分的Windows特殊的扩展函数。下面对一些常用的Windows Sockets API函数进行简单说明:1、socket():创建一个Socket。所有的通信在建立连接之前都要创建一个Socket,该函数的功能与文件操作中的fopen类似。2、bind():为创建的Socket指定通讯对象。成功建立Socket之后,就应该选定通信的对象。首先是自己的

20、程序需要与网络上的哪台计算机通话;其次,在多任务的系统下,该台计算机可能会有几个程序在工作,必须指出与那个程序通信。前者可以通过Intenet的网络IP地址来确定,而后者就需要指出端口号,用端口号来表示同一台计算机上不同的应用程序,可以从0-65536之间任选,不同功能的应用程序使用不同的端口号,这样一台计算机上可以有几个程序同时使用一个IP地址而互不干扰。3、listen():设置等待连接状态。对于服务器的程序,当申请到Socket,并制定通信对象为INADDR-ANY之后,就应该等待一个客户机的程序来要求连接。而listen()就是把一个Socket设置这种状态的函数。4、accept()

21、:接收请求连接。当没有连接请求时,对于阻塞方式,就进入等待状态,直至有一个请求到达为止。5、connect():主动提出请求连接。以上的bind()、listen()、和accept()函数一般都用于服务程序,属于被动等待的函数;对于客户端,要主动提出连接请求,应使用connect()函数。6、sent()/recv():发送、接受数据。7、connect():直接通信。8、closesocket(SOCKET s):通信结束,关闭指定的Socket。2.5 本章小结这一章所介绍的TCP/IP协议、编程的相关知识是下一章所展示的软件的编写基础,只有在这一章的理论指导下,软件的编写才能合乎实际,

22、才能最终实现在局域网内传输文件。第3章 软件设计在第三章中展示了用局域网文件传输系统,并成功传输了一个文件,这一章将对程序内部的细节予以介绍。该局域网文件传输系统使用VC+为编程语言,编程软件为Microsoft Visual C+,使用对话框为该软件的编程框架,其中用到了C+标准库函数和MFC类库,在并将其转化为自己所需要的功能函数。客户机和服务器的信息流如图4-1所示:图 3- 13.1局域网文件传输系统程序设计局域网文件传输系统的主要功能是建立与服务器的连接,向服务器发送数据,并且能够接收由服务器传送而来的数据。局域网文件传输系统如图3-2所示:图3- 23.2 局域网文件传输系统设计步

23、骤(1)创建一个基于对话框的应用程序,在对话框中添加IP地址、Edit Box、Progress Bar等控件,如图3-3所示:图3- 3(2)按组合键,打开“MFC classwizard”对话框,利用“MFC classwiard”对话框为对话框中的控件命名或关联数据。如图3-4所示:图3- 4(3)在对话框类的头文件中引用winsock2.h头文件,并导入ws2_32.lib库文件。#include”winsock2.h”#pragma comment(lib,” ws2_32.lib”)(4)在应用程序的InitInstance方法中初始化逃接字。WSADATA wsd;WSAStar

24、tup(MAKEWORD(2,2),&wsd);(5)在对话框的OnitDialog方法中创建套接字。M_Client=socket(AF_INET,SOCK_STREAM,0);(6)在对话框类中添加成员函数CString m_FileName; /传送的文件名称BOOL m_IsReveived; /是否接收数据CString m_ReceiveFile; /接收的文件名称 DWORD m_FileSize; /接收的文件大小DWORD m_FileLen ; /接收的文件长度CServerSocket* m_pServerSock; /接收文件套接字CServerSocket* m_Se

25、rverSock;CClientSocket* m_pSendSock; /发送文件套接字CFile m_File; /保存接收的文件BOOL m_Send; /是否开始发送数据BOOL m_SendNext; /是否继续发送数据DWORD m_SendNum; /记录当前发送的次数CFile m_SendFile; /发送的文件DWORD m_SendLen; /记录已经发送的文件长度DWORD m_SendFileLen; /发送文件的长度CString m_IP; /本机IPBOOL m_Received; /判断是否接收到对方的回应信息BOOL m_SendFinished;/发送是否

26、完成int m_Count;(7)向对话框类中添加AcceptConnection方法,用于接受客户端套接字的连接。Void LANFileTransfer:AcceptConnect()M_serverSock-Close();M_pServerSock-Accept(*m_ServerSock);(8)处理”设置成服务器”按钮的单击事件,创建服务器,并设置设置套接字接收数据时触发的消息。Void CLanFileTransfer: OnSetServer()Sockaddr_in serveraddr;UpdateData(TRUE);Serveraddr.sin_family=AF_IN

27、ET;Serveraddr.sin_port=htons(m_port);Serveraddr.sin_addr.S_un.S_addr=inet_addr(m_IP);If(connect(m_client,(Sockaddr*)&serveraddr,sinzeof()serveraddr)!=0)MeesageBox(“connectFail!”)Return;ElseMessageBox(“Connected!”);WSSAAsyncSelect(m_client,m_hWnd,1000,FD_READ);CString str,Info;m_path.GetWindowText(st

28、r);info.Format(“%s-%s”,str,”Its allowed to Transfer file In LanFile!”);int i=send(m_Client,Info.GetBuffer(0),info.GetLength(),0);(9)处理“发送”按钮的单击事件,向服务器发送数据。Void CLanFileTransfer: void CTransFileDlg:SendFileData()m_Send=TRUE;m_SendNext = TRUE;m_Received = TRUE;char data100;memset(data,0,100);m_SendNum

29、 +=1;m_pSendSock-Receive(data,100); /获得对方的应答信息CString rdata = data;if (m_SendLen=m_SendFileLen) /发送文件完成m_Send = FALSE;m_SendNext = FALSE;m_SendFile.Close();m_pSendSock-Close();m_pSendSock-Create(CLIENTPORT);MessageBox(发送完成);return;if (m_SendLen=0)&(rdata=取消)m_Send = FALSE;m_SendNext = FALSE;m_SendFi

30、le.Close();m_pSendSock-Close();m_pSendSock-Create(CLIENTPORT);MessageBox(对方取消了文件接收);return;char* membuf= (char*)LocalAlloc(LMEM_FIXED,MAXSENDNUM);memset(membuf,0,MAXSENDNUM);int result;if(m_SendLenm_SendFileLen)m_SendFile.ReadHuge(membuf,m_SendFileLen-m_SendLen);result = m_pSendSock-Send(membuf, m_SendFileLen-m_SendLen);if (result =SOCKET_ERROR)m_Send = FALSE;m_SendNext = FALSE;m_SendFile.Close();m_pSendSock-Close();m_pSendSock-Create(CLIENTPORT);LocalFree(membuf);KillTimer(1);MessageBox(发送失败);return ;m_SendLen =m_SendFileLen;elsem_SendFile.ReadHuge(membuf,M

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1