基于局域网的文件传输系统的设计与实现(编辑修改稿)内容摘要:

机 N 第 4 页 共 26页 需要指定打开的端口。 服务器使用 Socket 监听指定的端口,端口可以随意指定,等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 3 系统需求分析 现行业务系统描述 目前各种文件资源交流的主要方式可以分为三种 :( 1)通过局域网内主机之间以文件共享后再经过复制,粘贴方式实现。 ( 2)依靠可移动磁盘的两次信息转移实现。 ( 3)通过 Inter 邮件方式实现。 此三种方法并非不可行,但 它们都需要花费较长的时间 以及安全性也得不到保证 , 工作效 率将在很大程度上受到限制。 如果 通过 局域网内主机之间复制 粘贴来 实现文件 资源 共享,将浪费 大量的 网络 带宽,极大程度上影响了网内用户的工作效率 ,甚至导致用户不能正常工作 ;如果依靠移动磁盘实现文件的共享,将花费 大量 的金钱 , 而文件较 大 移动磁盘容量不足 的情况下 会 令人 极为 头疼, 何况 移动 磁盘 是病毒传播的重要途径; 如果 通过 Inter 邮件方式 实现 , 用户需要接入 Inter 服务器, 这种方式 对远程服务器有非常大的依赖性, 即使 1KB 的文件都要经历极度繁琐的路径, 不能彻底实现点对点的 即时 交流 , 文件较大的情况下就不言而喻了。 最 重要的是,在如今病毒黑客横行的网络世界中,信息的安全性也得不到保证。 综上所述 ,依靠 Inter 网络等方式实现文件资源交互的 准确性,快速性及 安全性远达不到理想的要求。 现行系统存在的主要问题分析 针对企业来说,提高工作效率是企业的一个重心;降低成本是企业赢取最大利益的重要方式;保证信息安全却是可能影响企业生死存亡的关键。 企业需要对各种因素有足够深刻的认识才可能实现最终目标 盈利。 而传统的文件资源交互方式却存在很多的问题,大致可以分为: 一、不能有效地降低文件交互成本;二、文件交换过程过于繁琐;三、内 部机密资料得不到安全保证;四、文件交互的准确性得不到 更本 保证。 提出解决方案 解决当前问题的方案主要是指在允许的成本、性能要求下,分析系统实施的可行性,提出功能实现的依据,包括其简单性,安全性以及经济可行性。 根据企业简单快速,安全的资源共享等要求 ,提出以下 四 种解决方案: 1)操作简单性方案:开发的系统需要有 以下 特点: Windows 友好的用户界面和系统快速的应用方法,简单易操作,不需对使用人员进行培训,可以使用户很好的掌握。 对传输文件过程中的文件的载入设置都是非常简单可行,比如:如果用户忘记选择文件接收者的时 候系统会自动提示“请选择接收用户”要求用户 第 5 页 共 26页 选择主机而不导致错误出现而引发的不便,这样就大大提高工作效率。 而且开发的系统应该简单易操作,易维护,减少了不必要的麻烦。 对于家庭局域网以及一些比较简单的中小企业网,系统必须做到在实际应用中较为成功。 系统应为用户提供 Windows 所一贯坚持的非常友好、操作简单的用户界面。 2)传输安全性方案:系统开发完成后, 能 有效地使内部资源与外网的完全隔离,从而保证了内部机密文件的安全性。 3)经济可行性方案:系统开发完成必须作到提高文件共享效率,不管是在资金上还是效率上都能达到预 期的效果的。 最重要的一点就是:使用户避免花费高额的资金去购买各种移动磁盘甚至是通过 Inter 邮件方式,使得用户方便的同时,也让信息少走了不少“弯路”。 4)快速准确性方案:鉴于系统的目标要求和特点,能够保证快速准确地实现文件共享。 综合上述,本设计 在 Windows XP 操作系统下 , 以中文版 Delphi7 为开发工具 ,以 C/S 为系统功能结构,基于点对点的 TCP/IP 协议理论,通过 Socket 套节字 连接客户端与服务器实现文件 及文件夹 传输。 彻底避免了文件交换过程与外部网络的接触,实现快速的文件资源共享。 并能够 确保内部文件的机密性,能够在很大程度上有效地提高工作效率。 4 系统设计 系统总体架构 本系统的设计过程主要分为两部分: 第一部分:系统界面的设计以及获取局域网内所有在线用户的主机名, IP地址以及工作组名。 使网内所有用户都能够获取其他用户信息。 第二部分:文件传输是本设计功能实现的核心。 系统采用 C/S 架构将系统运行载体分为两个部分:客户端与服务器端。 文件传输需要建立有效的连接后,通过 TCP/IP 协议实现点对点的文件传输。 通信双方是通过三次握手建立 Socket 连接,实现文件传输,最后关闭套节字连接。 文件传输的整 个流程图如下: 第 6 页 共 26页 TCP/IP 3 次握手 SOCKET 流 三次握手 图 2 文件传输系统框架图 系统界面设计 界面设计 界面是系统功能得以实现的基本平台,这里充分利用 Delphi 可视化开发环境以各种组件设置。 界面的设计可以分为 五 步: 1) 创建一个工程,制作一个窗体 form1; 2) 在 form1 内加入用户列表 userlist 并设置列表项:用户名,工作组 , IP地址 以及它们的属性 ; 3) 在 form1 内加入 Memo1; 4) 在 Memo1 内加入各种 DELPHI 网络通讯控件,本系统用到的控件分别有: a. 用于传送文件是打开文件的控件 OpenDialog1; b. 用于接收端保存文件的控件 SaveDialog1; c. 用 于 点到 点文 件 传输 的客 户 端 PClientConnected 及服 务器 端PServerAfterCommandHandler; d. 用于广播主机信息的客户端 ClientStatus 和服务器端 ServerStatus 数据报组件; e. 用于设置退出系统和 窗口前端显示 的 PopupMenu1 菜单; 5)分别创建刷新按钮 BitBtn1,文件传输 BitBtn2 以及文件夹传输 BitBtn3按钮。 设置的界面如下图: 客户端主机 服务器端主机 套节字连接请求 连接响应 写入文件流 接收文件流 并保存 断开连接 断开连接响应 LIANJIETCP 第 7 页 共 26页 图 3 基于局域网的文件传输系统界面 用户 信息 用户列表建立以后,将局域网内所有在线用户的主机名,主机 IP 地址以及工作组名显示于列表中。 方法是首先确定用户主机是上线信息,返回信息,握手信息还是离线信息。 这里对他们分别设置了一个信息发送的头信息,分别设置为:LOGIN, HAND 以及 LOGOUT。 如果新用户上线,它就向局域网以 LOGIN 为头信息广播本机的主机名, IP 地址以及工作组。 局域网内所有在线主机收到该广播信息以后将新上线的主机名,端口, IP 地址以及工作组信息添加到自己的在线用户列表并都以 HAND 为头信息向局域网广播本机的握手信息;当包括刚上线主机在内的局域网所有主机收到这个握手信息以后线判断自 己的在线用户列表中是否存在这个主机广播的主机信息,如果不存在就 说明 它 是刚上线主机,最后将这个信息添加到自己在线列表,否则就不加;当用户下线的时候也将自己的信息以LOGOUT 为头信息广播给局域网,其他在线用户收到这个消息以后将其主机信息从本地在线用户列表删除。 其部分的源代码分别如下: 第 8 页 共 26页 procedure (Sender: TObject)。 //新用户上线 以 LOGIN 为头信息 var wsadata:twsadata。 myinfobuf:array[0..1023]of char。 //本机信息 pmyname:array[0..1023]of char。 //本机名 wList,clist: TStringList。 i,j:integer。 begin mainhide。 //把程序图标显示在系统托盘里边 if wsastartup($101,wsadata)0 then exit。 //获取本机名 gethostname(pmyname,sizeof(pmyname))。 //获取主机名 myname:=strpas(pmyname)。 //得到主机名 try wlist:=。 clist:=。 GetServerList(wList)。 //获取本机 IP for i:=0 to do begin getusers([i],clist)。 //得到用户名 for j:=0 to do。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。