基于局域网的文件传输系统的设计与实现(编辑修改稿)内容摘要:
机 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。基于局域网的文件传输系统的设计与实现(编辑修改稿)
相关推荐
的交流,通常采用显示器作为其输出设备,用于显示输入键值中间信息及运算结果等。 本设计采用常用的发光二极管( LED=Light Emitting Diode)显示器,即 7 段数码管和 LED指示灯。 他们具有耗电省、线路简单、价格低廉、安装方便、耐振动等优点。 我们最常用的是七段式和八段式 LED数码管,八段比七段多了一个小数点,其他的基本相同。 所谓的八段就是指数码管里有八个小 LED
附:简易信号测量仪的 C 语言程序 和原理图 /********************简易信号测量仪的 C 源程序 ***********************/ include //52 单片机的头文件 define uint unsigned int define uchar unsigned char //宏定义 unsigned long int resh_1。 //保存波形的周期
.................................................................................... 6 课题研究方法 .........................................................................................................
示各种字形或符号。 LED 数码管有共阳、共阴之分。 图是共阳式、共阴式 LED 数码管的原理图和符号。 图 5 共阳式、共阴式 LED 数码管的原理图和数码管的符号图 显示电路显示模块需要实时显示当前的时间 ,即时、分、秒,因此需要 6 个数码管,另需两个数码管来显示横。 采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管
路设计时常常采用模块化的设计方法。 硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。 如图 22 所示 ,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统及上位机四部分组成。 上位机通过通信部分向控制部分发送控制指令和显示内容代码,控制部分执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式。 图 22 系统硬件组成框图 显示屏主控制器
r Unit,微控制器)来代替 SCM。 单片机的发展历史大致分为 4 个阶段。 第一阶段:单片机的探索阶段。 这一阶段主要是探索如何把计算机的主要部件集成在芯片上。 第二阶段:单片机的完善阶段。 Intel 公司在 MCS48 的基础上推出了完善的、典型的 MCS51 单片机系列。 它在以下几个方面奠定了典型的通用总线型单片机体系结构: ①设置了经典、完善的 8 位单片机的并行总线结构;