毕业设计(论文)-Delphi局域网管理系统的设计与开发.doc_第1页
毕业设计(论文)-Delphi局域网管理系统的设计与开发.doc_第2页
毕业设计(论文)-Delphi局域网管理系统的设计与开发.doc_第3页
毕业设计(论文)-Delphi局域网管理系统的设计与开发.doc_第4页
毕业设计(论文)-Delphi局域网管理系统的设计与开发.doc_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全套设计加扣3012250582目录引言.11项目背景.21.1局域网管理软件的概念.21.1.1局域网概念的简单总结.21.1.2局域网管理软件.31.2当前局域网管理存在的问题.41.3局域网管理软件的趋势.42软件开发的前期思考.62.1本科学习过程中与相关的课程及实验.62.1.1Delphi程序设计.62.1.2Delphi开发本项目的优势.72.1.3计算机网络.82.1.4小型局域网的特点.82.2软件设计构架.92.2.1CS结构的确立(三种模式的比较结果).92.2.2功能模块的确立(功能表).123软件开发的中期过程.133.1使用组件.133.1.1客户端主要组件.133.1.2服务端主要组件.153.2外观设置.213.3程序编写.213.3.1客户端程序按段分析.213.3.2客户端程序按段分析.274软件开发的后期事宜.345软件的外观和使用.355.1服务端的图形界面和使用.355.1.1服务端的图形界面.355.1.2服务端的使用.35全套设计加扣30122505825.2客户端的图形界面和使用.375.3软件的功能列表.376软件的总结和调试.39结论.40谢辞.41附录.43全套设计加扣3012250582第1页共61页引言当今社会,局域网越来越被广泛的使用,网络资源的庞大,让很多行业都用到网络,在网络上能快速的找到我们所想要的信息。信息传递速度快,让网络信息越来越流行了。网络的快速发展,也带来了很多问题,如安全问题,很多企业自己组建内部网络与互联网连接,从而带来了很多不安全因素,病毒、木马、垃圾邮件盗取企业内部秘密资料,黑客攻击企业内网,让企业网络瘫痪,造成巨大损失,内部网络本身也存在安全问题,很多内部人士通过上网无意识的泄漏企业的内部信息,也会给企业带来无法估量的损失。据调查,企业员工每天的互联网访问中40与工作无关,对色情等非法网站的访问量70发生在工作时间;互联网带宽资源有70是被mp3、视频下载等占用;更有甚者,30%以上的员工在使用互联网时没有明确目标。于是,来自网络的风险也正在悄然入侵,越来越多的网络交流无意中加大了企业信息的泄漏,给企业信息安全带来隐患。“现实就是这样,很多公司对于来自外部的网络攻击非常上心,但对于来自内部网络的隐患却不大注意”。对于内部局域网如此不安全,企业应该怎样实施内部局域网管理呢?现在很多企业采用防火墙、IDS等具备过滤、安全功能的工具能部分实现企业网络的安全管理需求。但这些传统的设备采用被动式响应防御,不适于内部局域网管理。企业要么改变传统的运作方式去适应这种深刻的变化,要么另辟蹊径去管理内部局域网。专家认为,现在企业内部局域网管理很重要,是保护企业网络安全的重中之重,要想很好的管理内部网络,局域网管理软件是首选,局域网管理软件可以给企业管理局域网,管理员工上网行为,提高员工工作效率,阻止垃圾邮件、病毒、木马等危害企业利益的安全因素。局域网管理软件是企业提高效率,防止信息泄漏,保护企业商业秘密的法宝,有了它,企业可以轻松管理好自己的网络,有了它,企业能有效的提高员工工作效率。局域网管理软件具体功能有一个机器监控整个网络,部署方便,可以禁止任何网页的访问,禁止BT,迅雷,快车等p2p下载软件,禁止各种股票软件和财经网站,禁止QQ、MSN、UC等聊天工具,可以监控邮件,禁止垃圾邮件,对收发的邮件、论坛、博客、聊天内容进行过滤,可以进行日志查询,可以控制员工在线上网时间和管理上传、下载流量,也可以随时监控流量动态等。局域网管理软件的出现增强了企业对互联网访问管理与控制力度,从而使企业实现科学、高效地访问互联网资源,阻止了对高风险、非法和不健康互联网内容的访问,也真正实现了企业网络安全。全套设计加扣3012250582第2页共61页1项目背景1.1局域网管理软件的概念1.1.1局域网概念的简单总结图1.1局域网我们日常接触到的办公网络都是局域网,我们可以在企业、学校、政府机关等部门见到它的应用。局域网主要用在一个部门内部,常局限于一个建筑物之内。在企业内部利用局域网办公已成为其经营管理活动必不可少的一部分。学生在学校内的机房上机,也都是在局域网的环境下。由于距离较近,传输速率较快,从10Mbps到1000Mbps不等。局域网按其采用的技术可分为不同的种类。如EtherNet(以太网)、FDDI、TokenRing(令牌环)等。按联网的主机间的关系,又可分为两类,对等网和CS(客户服务器)网。按使用的操作系统不同又可分为许多种,如Windows网和Novell网。按使用的传输介质又可分为细缆(同轴)网、双绞线网和光纤网等。局域网之所以获得较广泛的应用,源于其具有以下特点:网内主机主要为PC机,是专门适于微机的网络系统;覆盖范围较小,一般在几公里之内,适于单位内部联网;传输速率高,误码率低,可采用较低廉的传输介质;系统扩展和使用方便,可共享昂贵的外部设备和软件、数据;可靠性较高,适于数据处理和办公自动化。IEEE(InstituteofElectricalandElectronicEngineers电气和电子工程师协会)为采用不同技术的局域网制定了一系列的标准,称为IEE802标准。ISO也接受其作为局域网的国际标准,称为ISO802。IEE802标准主要有以下标准组成:IEEE802.3CSMACD总线访问控制方法及物理层技术规范,即EtherNet网的技术规范;全套设计加扣3012250582第3页共61页IEEE802.3uIEEE802.3的补充,100MbpsEtherNet网的技术规范;IEEE802.5令牌环(TokenRing)网访问控制方法及物理层技术规范;IEEE802.6WAN(城域网)访问控制方法及物理层技术规范;IEEE802.11无线局域网标准;局域网是一种通信子网,所谓通信子网是只负责通信的,也就是说它只对应上一节我们介绍的OSIRM7层协议的最低三层协议,第四层以上在主机内由操作系统实现。由于局域网可采用的传输介质种类较多,为使其数据链路层不至过于复杂,局域网的数据链路层又分为两个子层,逻辑链路控制(LLC)子层与介质访问控制(MAC)子层。局域网的数据传输是在本地子网内进行的,因此,网络层的路由功能就是多余的,至于网络层的流量控制、差错控制等功能,局域网是在逻辑链路控制(LLC)子层实现的。所以,网络层对局域网是不需要的,局域网只包含数据链路层和物理层这两层。1.1.2局域网管理软件要想很好的管理内部网络,局域网管理软件是首选,局域网管理软件可以给企业管理局域网,管理员工上网行为,提高员工工作效率,阻止垃圾邮件、病毒、木马等危害企业利益的安全因素。局域网管理软件是企业提高效率,防止信息泄漏,保护企业商业秘密的法宝,有了它,企业可以轻松管理好自己的网络,有了它,企业能有效的提高员工工作效率。局域网管理软件具体功能有一个机器监控整个网络,部署方便,可以禁止任何网页的访问,禁止BT,迅雷,快车等p2p下载软件,禁止各种股票软件和财经网站,禁止QQ、MSN、UC等聊天工具,可以监控邮件,禁止垃圾邮件,对收发的邮件、论坛、博客、聊天内容进行过滤,可以进行日志查询,可以控制员工在线上网时间和管理上传、下载流量,也可以随时监控流量动态等。局域网管理软件的出现增强了企业对互联网访问管理与控制力度,从而使企业实现科学、高效地访问互联网资源,阻止了对高风险、非法和不健康互联网内容的访问,也真正实现了企业网络安全。对于一个完整的局域网管理软件来说,其应该具备的功能有:(1)监控整个网络;(2)管理每台电脑;(3)聊天监控;(4)邮件监控;(5)页面监控;(6)实时在线动态日志;全套设计加扣3012250582第4页共61页(7)禁止WEB粘贴与邮件外发;(8)封杀BT、eDonkey、emule;(9)远程控制管理;(10)禁止文件上传下载;(11)高级邮件监控;(12)基于物理层进行控制管理;(13)时间段管理;(14)过滤网址库管理;(15)可以基于关键词控制;(16)上网信息统计查询;(17)完美的统计查询系统;(18)方便实用的日志导出功能.(以上为对于一个较高端局域网管理软件的定义,并非本项目功能表)1.2当前局域网管理存在的问题当前高端的局域网管理软件主要运用在大中型企业当中,价格昂贵,功能繁多,同时本身复杂的结构和大量冗余的数据也使得软件本身会不堪重负,但是配合高端的局域网管理人才,以上无疑是最为全面和安全的局域网管理手段。同时这也符合了大中型企业对局域网管理的高要求,可以承受住频繁分布式的网络攻击。但是对于例如学校内部网或者小区网关的情况,上述管理方法明显不是用。小型局域网内部管理表现出了混乱、无序、无法统一、欠安全等特点。网络上各式各样小型的的局域网辅助或是管理软件,但是由于小型局域网本身的特点,这些软件只能以一种半黑客软件的形式来运行和存在,缺乏稳定性。援引上例,在学校内网中,例如一个实验室,由于学生的流动性,学生用电脑并没有归属权,所以必然在使用中会出现各种问题,而学校实验室一般不会链接外网,所以也不需要高端的网络软件,但是教师还是需要一个简单实用的局域网管理软件。再次援引上例,在小区居民的某一路由下,若干人共用一个内部网。由于上网操作的使用者对电脑和网络的熟悉程度参差不齐,并且很多网络软件的使用会在同一网关下引起不可避免的矛盾,此类内网需要一种简单的、达成协议的管理软件。1.3局域网管理软件的趋势未来的局域网将集成包括一整套服务器程序、客户程序、防火墙、开发工具、升级工具等,给企业向局域网转移提供一个全面解决方案。局域网将进一步加强和E-全套设计加扣3012250582第5页共61页mail、群件的结合,将Web技术带入E-mail和群件,从信息发布为主的应用转向信息交流与协作。局域网将提供一个日益牢固的安全防卫、保障体系,局域网也是一个开放的信息平台,可以随时集成新的应用。随着无线局域网(WLAN)产品迅速发展并走向成熟,许多企业为了提高员工的工作效率,开始部署无线网络。中学及大学在内的许多学校也开始实施无线网络,随着家庭电脑的普及和住房装修的高档化,家庭无线网络也成为一个潜在的市场。因此无线网络将会成为许多公共场所的必备基础设施。将来的局域网的发展趋势必将是有线网络和无线网络共存,无线局域网作为一种灵活的数据通信系统,在建筑物和公共区域内,是固定局域网的有效延伸和补充。可见未来局域网软件会愈加完整安全,并且面向无线网络,但是未来的局域网管理软件也必将更加轻便简洁。全套设计加扣3012250582第6页共61页2软件开发的前期思考2.1本科学习过程中与相关的课程及实验2.1.1Delphi程序设计大二时选修了王文翰老师任教的delphi程序设计,以及课程相关实验。本课程从Delphi语法基础开始,详细讲解了过程与函数,Delphi常用组,Delphi窗体,按钮组件、文本组件以及对话框组件等组件的知识,包括文件操作和数据库应用程序以及使用Delphi进行Intemet程序开发。通过本课程的学习,我初步掌握了Delphi结构化编程的方法以及其面向对象的特点。通过与大一时候学习C语言的对比,我越发体会到Delphi这种可视化编程的优势,并且Delphi的IDE界面亲切,简介明了,组件库内容丰富,功能强大,使我产生了兴趣,在课程结束后继续关注和学习Delphi。下面是简单的Delphi发展年表,可见近年来Delphi并非一种非常强势的语言或者说开发媒介。但其10余年的发展与独特的发展历程决定其有着专属的优势:19951.0支持16位Windows开发。基于框架(VCL)的,可拖曳、可视化的开发环境19962.0以32位编译器为核心,支持CS数据库开发19973.0语法:加入接口(Interface)的机制。IDE:首次提供了(CodeInsight)19984.0语法:加入动态数组和方法覆盖等支持。IDE:增强调试能力,提供代码模板19995.0增强了IDE和调试器,提供了TeamSource。简化Internet的开发,增强数据库支持20016.0提供了WebService。跨平台的Kylix1.0和CLX20027.0提供了.NET的过渡,增强的Internet开发(IntraWeb),完善数据库支持,增加了Indy网路元件和RaveReport资料库报表,并且支援UML及XP的程式制作。20038.0单纯的for.NET版本,拥有C#的能力保留了Delphi的易用性(业内视为一个过渡版本)20049.0正式名称:Delphi2005。语法:加入了inline及forinloop等功能。IDE:把BorlandDelphi.Net、BorlandDelphiWin32、BorlandC#、EnterpriseCoreObjects等环境和功能集成成一个开发工具,因此可以在Win32和.NET开发环境中切换或同时进行200510.0发布名称:BorlandDeveloperStudio(BDS)2006。集成C+BuilderECO(EnterpriseCoreObjects)升级到ECOIII集成TogetherforDelphi,可以在全套设计加扣3012250582第7页共61页同一个IDE中进行UML开发;QAAudits和QAMetrics可以快速的把握专案的设计和代码的质量。2006TurboBorland将BDS2006拆分成几个独立的版本(Delphiforwin32、D、C#、C+Builder),而且不能同时安装两个不同的版本。由于Borland的IDE生产部份独立成为一家名为codegear的公司,所以这个版本是以Borland名义推出的最后一个版本。200711.0正式名称:CodeGearRADStudio-Delphi2007。20085.7Borland正式宣布将CodeGear子公司出售给Embarcadero(易博龙)技术公司。20088.25Embarcadero发布CodeGearDelphi2009Pre-release版。20098.25Embarcadero发布CodeGear.RAD.Studio.2010版当前DELPHI已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHIFORPHP,以高度可视化的方式全面支持面向对象的PHP网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。2.1.2Delphi开发本项目的优势(1)直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用Delphi界面它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。(3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。(4)具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。(5)具有强大的数据存取功能。它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Inix、Oracle等大型数全套设计加扣3012250582第8页共61页据库连接。Delphi既可用于开发系统软件,也适合于应用软件的开发。(6)拥有强大的网络开发能力,能够快速的开发BS应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。(7)Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。(8)从Delphi8开始Delphi也支持.Net框架下程序开发。2.1.3计算机网络大三的时候选修了杨晓青老师任教的计算机网络C以及相关实验。本课程从网络技术基础开始,介绍了网络介质和网络布线、网络设备及其配置,着重介绍了局域网技术、TCPTP协议以及网络管理和安全。本课程的学习使我对局域网的了解从平时浅层的应用上升到了深层的了解,初步掌握了关于局域网,网络结构模型,TCPIP协议,网络管理等方面的理论知识,为本项目的设计和实现提供了可能。2.1.4小型局域网的特点局域网的现有拓扑结构包括:星型结构,环型结构,总线结构以及混合型拓扑结构。一般小型局域网接入的电脑数量不多,布线长度较短,所以可以选择总线结构和星形结构两种网络拓扑结构。总线结构是使用一条线缆作主干线缆,网上所有设备都是与主干线缆相连接的。星形结构是通过一个中心结点连接的。这个中心结点为控制结点,任意两个结点的通信都必须通过它。这种结构通常使用集线器(HUB)作为中心连接设备,连接多台计算机。组建的时候如果条件允许(比如能够购买集线器),全套设计加扣3012250582第9页共61页图2.1网络拓扑结构比较星形结构比较易于的管理和维护。图2.1为局域网拓扑结构示意。小型局域网的这种星型结构也正是本项目设计的硬件出发点。图中可以一目了然地看出:星型结构的模式是有一台服务机作为网络的中心,也就是管理中的控制中枢,以此为中心辐射出若干客户机,客户机直接受制于控制中心,客户机之间没有很强的联系,客户机的权限较低。2.2软件设计构架2.2.1CS结构的确立(三种模式的比较结果)在确定系统的结构模式之前,纳入考虑的模式有CS模式,BS模式以及P2P的模式。在进行比较和实地分析之后最终选择了CS模式。BS结构即浏览器和服务器结构。它是随着Internet技术的兴起,对CS结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立BS结构的网络应用,并通过InternetIntranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LANWANInternetIntranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。在JAVA这样的跨平台语言出现之后,BS架构管理软件更是方便、快捷、高效。如图2.2为BS模式图。全套设计加扣3012250582第10页共61页图2.2一个典型的BS结构图BS模式与CS相比遇有很多优势:BS具有分布性特点,业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只需要改变网页,即可实现所有用户的同步更新。以及开发简单,共享性强的特点。但是BS模式与本项目所针对的特定环境不相符。BS有:个性化特点明显降低,无法实现具有个性化的功能要求。操作是以鼠标为最基本的操作方式,无法满足快速操作的要求,以及功能弱化,难以实现传统模式下的特殊功能要求等弱点。这些优势和弱点决定了BS模式更适合用在企业和办公场所。而在本项目中的小区网络用户以及学校实验室这样的环境则显得鸡肋。P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文PointtoPoint(点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。如图2.3为一种P2P结构的示意。全套设计加扣3012250582第11页共61页图2.3P2P模式示意P2P模式强调客户机与客户机之间的关系,忽略了主机对于整个网络的管理和控制功能。P2P模式加强了网络中每台计算机的自由度,在云时代的因特网中如鱼得水,但是在本例的环境中,在学校的实验室或者小区的网络用户,这种给予客户机过高权限的模式应当是不适合的。图2.4为CS模式与P2P的对比,a为cs模式,b为p2p:图2.4CS和P2P对比由图2.4可见,P2P模式更加适宜用于环型结构一类的局域网中,而CS模式几乎就是为星型结构局域网量身定做的!全套设计加扣3012250582第12页共61页最后再单独分析一下CS结构:CS(ClientServer,客户机服务器)模式又称CS结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。CS结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。CS模式简单地讲就是基于企业内部网络的应用系统。与BS(BrowserServer,浏览器服务器)模式相比,CS模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。最简单的CS体系结构的应用由两部分组成,即客户应用程序和服务器程序。二者可分别称为前台程序与后台程序。运行服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于服务器,可称为客户电脑,当需要对服务器中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。而CS模式的缺点,相关资料的总结中是三条:1.只适用于局域网。2.客户端需要安装专用的客户端软件。3.对客户端的操作系统一般也会有限制。这三条缺陷在本项目所特定针对的网络中刚好“无足轻重”。CS模式在本项目中可以充分的扬长避短,故而在分析之后确定使用CS模式设计软件。2.2.2功能模块的确立(功能表)图2.5服务端程序菜单栏图2.5为服务端程序的菜单栏,其中包括了本软件的主要功能。可以看出,服务端功能分为三大块:1.对操作系统的控制,包括关机重启和用户注销;2.对程序执行的控制,包括运行客户端指定课执行程序以及命令;3.对文件数据传输的控制。这里仅是简单示意。关于软件界面和详细使用将在下文中介绍。下面的表2.1列出了软件设计初期预期的所有功能,其中有没有完成的标记为,完成的标记为。远程关机远程关机远程注销远程注销用户用户远程运行远程运行DOSDOS命令命令远程运行远程运行文件文件上传文件上传文件下载文件下载文件文件列表文件列表多功能地多功能地址栏址栏全套设计加扣3012250582第13页共61页日志记录日志记录日志保存日志保存右键清屏右键清屏多客户管多客户管理理流量限制流量限制网关操作网关操作屏幕抓取屏幕抓取通信程序通信程序表2.1没有实现的功能中:流量限制,网关操作和屏幕抓取因为技术难度没有能够实现,而通信程序已经完成,在调试的时候出现不兼容的现象故而放弃。已实现的功能及其实现的方法将在下章中详细介绍。3软件开发的中期过程3.1使用组件3.1.1客户端主要组件图3.1IDE中客户端的工程文件全套设计加扣3012250582第14页共61页图3.2客户端组件列表如图3.1为客户端软件在IDE中编辑的画面。从左到右排列的四个控件分别是Tpopupmenu控件,Tclientsocket控件,TcoolTrayIcon控件,又一个Tpopupmenu控件。而图3.2为对象树状查看器中的树状表。下面对客户端所使用组件进行分析:1.TClientSocket:客户端套接字,使用这个组件必须自行添加一次:菜单component-InstallPackets,按Add按钮,选择delphi目录里的bin目录下的dclsockets70.bpl,然后ClientSocket控件就会出现在Internet页上了。在代码中的声明语句是:ClientSocket1:TClientSocket这是一个使用客户端套接字Socket的组件,用于与服务端通信,接受服务端命令,返回结果至服务端,关键语句有:ClientSocket1.Host:=sHost定义host地址为本机本地地址ClientSocket1.Port:=iPort定义套接字端口为5008ClientSocket1.Active:=True活动属性为trueprocedureTMain.ClientSocket1Read(Sender:TObjectSocket:TCustomWinSocket)这个过程的功能是使客户端接受和读取服务端传来的信息、数据等,详细内容将在下文程序中介绍。ifnotFileExists(sFile)thenClientSocket1.Socket.SendText(%tFile+sFile+NotFound)以上一段是:如果指定文件不存在,则返回信息:路径+文件名+不存在。ClientSocket1.Socket.SendText(%f+Chr(iCountLen)+Chr(iCountMod)+Chr(Length(lsti)+lsti+#0)以上一段是:当接受到列出文件列表的命令后,返回标志位+文件长度+文件名+结束符+文件内容到服务端。ClientSocket1.Socket.SendText(%t+sFile+TransOK!)标志位,文件传输完毕。2.TcoolTrayIcon,TcoolTrayIcon是一个外观空间,用此控件来处理窗口的“最小化到托盘”。因为客户端并不需要主动的相对于服务端的操作,这样可以将客户端程序最小化于系统托盘,只保留右键菜单,优化了客户端电脑的运行。关键语句如下:CoolTrayIcon1:TCoolTrayIconCoolTrayIcon1的申明语句。procedureTMain.N1Click(Sender:TObject)全套设计加扣3012250582第15页共61页beginCoolTrayIcon1.ShowMainendprocedureTMain.N2Click(Sender:TObject)beginCloseendN1Click和N2Click为popupmenu1的两个右键菜单项,分别为客户端最小化到系统托盘之后的右键菜单:“显示”和“关闭”。如图3.3。图3.3客户端最小化到系统托盘右键菜单3.PopupMenu2:TPopupMenupopupmenu2的声明语句procedureTMain.N3Click(Sender:TObject)beginMemo1.Lines.ClearendprocedureTMain.N4Click(Sender:TObject)beginMemo1.Lines.SaveToFile(sCurPath+ClientDataOperLog.txt)endN3和N4为memo1面板的右键菜单。作用分别为日志清屏和保存日志全套设计加扣3012250582第16页共61页3.1.2服务端主要组件图3.4服务端程序的IDE界面图3.5服务端控件列表如图3.4为服务端在IDE中编辑的画面,从左到右分别是:Tpopupmenu控件,Tserversocket控件,Topendialog控件,两个Timagelist控件,Xpmanifest控件。此外在图3.5中的树状表中还可以看出,服务端用了12个button组件,Tlistbox组件,Tlistview组件,Tsplitter组件等等。下面对几个重要组件进行说明:1.TserverSocket,在此详细说明一下socket控件并将clietsocket放在一起进行说明,因为serversocket控件和clietsocket是一对成组控件。全套设计加扣3012250582第17页共61页在Delphi中,对于Windows中的Socket进行了有效的封装。在Delphi中,按其继承关系,可以分层两类:TComponentTAbstractSocketTCustomSocketTCustomServerSocketTServerSocketTComponentTAbstractSocketTCustomSocketTClientSocket直接从TObject继承过来:TObjectTCustomWinSocketTServerWinSocketTObjectTCustomWinSocketTClientWinSocketTObjectTCustomWinSocketTServerClientWinSocket可以看出第一类建立在TCustomSocket基础上,第二类建立在TCustomWinSocket的基础上。第一类建立在TComponet的基础上,第二类直接构建在TObject基础上。因此如果用户非常熟悉Socket并且想要编写控制台程序时,可以使用TCustomWinScoket类。同uses中可以看出,它们都在ScktComp.pas中实现,而在schtComp.pas中,则包含了winsock.pas文件,如果继续深入winsock文件,在其中可以发现所有的WindowsSocket的基本方法。1)TServerSocketSocketTServerWinSocket是最重要的属性,提供Socket连接,事实上发送接收数据都要靠这个属性。Portint要监听的端口,如果在Service属性中指定了服务类型,此属性将被忽略。ServiceAnsiString提供的服务,如HTTP、FTP等,如果在这里指定了服务类型,Port将被忽略,因为各种服务都有特定的端口,如FTP:21、HTTP:80ServerTypeTServerType设置与客户连接的方式,取值为两个枚举常量stNonBlocking和stThreadBlocking,stNonBlocking表示用非阻塞方式连接每一个客户,每个连接都在一个单独的线程中处理。并用OnClientRead()和OnClientWrite()通知服务器端的Socker进行读写。stThreadBlocking表示以阻塞方式连接客户,即以主动查询的方式可客户连接。Activebool激活服务,相当于调用Open()方法。OnAccept事件当有客户请求连接时触发OnClientRead事件通知服务器去读取有关信息。OnClientWrite与此类似。2)TClientSocketSocketTClientWinSocket同TServerSocketActivebool同TServerSocket全套设计加扣3012250582第18页共61页AddressAnsiString服务器的IP地址,如4ClientTypeTClientType与服务器连接方式,取值为两个枚举常量ctNonBlocking,tBlocking。ctNonBlocking表示非阻塞方式,ctBlocking表示阻塞方式。HostAnsiString要连接的主机名,如Portint同TServerSocketServiceAnsiString同TServerSocketOnConnect事件当连接时发生,OnConnecting、OnDisConnect与此类似OnRead事件通知客户机去读取有关信息。OnWrite与此类似。TServerSocket和TClientSocket只提供基本的服务器客户机的连接,真正提供数据传输的是它们都有的属性Socket,它的类型分别是TServerWinSocket和TClientWinSocket,而TServerWinSocket和TClientWinSocket的父类都是TCustomWinSocket。与之相关的程序段分析:ServerSocket1:TServerSocket声明语句procedureServerSocket1ClientConnect(Sender:TObjectSocket:TCustomWinSocket)procedureServerSocket1ClientDisconnect(Sender:TObjectSocket:TCustomWinSocket)procedureServerSocket1Listen(Sender:TObjectSocket:TCustomWinSocket)procedureServerSocket1ClientRead(Sender:TObjectSocket:TCustomWinSocket)这是4个关键过程的声明语句,分别是客户端链接,客户端断开,客户端监听,以及客户端读取。下章中将详细介绍。beginFileList:=TStringList.CreateisStartRecFile:=FalseFStream:=nilsCurPath:=ExtractFilePath(Application.Name)s:=sCurPath+Server.iniifFileExists(s)thenbegininiFile:=TIniFile.Create(s)iPort:=iniFile.ReadInteger(SocketPort5008)iniFile.Free全套设计加扣3012250582第19页共61页endelseiPort:=5008NumClient:=0ServerSocket1.Port:=iPortSetLength(AClientNumClient)ServerSocket1.Active:=Trueend这一段中进行了一些初始化,包括如果ini存在的话读取ini文件中的内容。不存在的话直接设定端口为5008,active设置为true等等。2.TopenDialog。TOpenDialog组件:“打开”对话框是用TOpenDialog组件实现的,TOpenDialog组件是非可视组件。Filter属性用于设置文件过滤器,让对话框只列出特定类型的文件。在设计时可以单击Filter属性旁的省略号“.”按钮,打开“Filter.Editor”对话框,在“Filter.Name”栏键入关于过滤器的简短说明,在“Filter”栏键入通配符,在设计期,把“打开”对话框组件加到窗体上,看到的是TOpenDialog组件的图标,只有调用对话框的cute方法,才能在运行期看到真正的对话框。TOpenDialog组件的重要属性:DefaultExt-此属性用于指定一个默认的扩展名FileName-此属性用于指定一个文件名Files-通过此属性可以访问多个文件Filter-此属性用于设置文件过滤器FilterIndex-此属性用于指定哪个过滤器是默认过滤器InitialDir-设置此属性可以指定另外一个目录Options-此属性用于设置“打开”对话框的选项Title-此属性用于设置对话框的标题相关代码:procedureTMain.ToolButton8Click(Sender:TObject)beginCurClientIP:=ListBox1.ItemIndexiDialog1.cutethenTransFileToClient(OpenDialog1.FileName)end全套设计加扣3012250582第20页共61页图3.6butten8按钮以上代码中的button按钮即为图3.6的上传文件按钮,此处利用OpenDialog控件来实现文件的选择和上传。3.TXPManifest:Txpmanifest为一风格控件,让程序在XP的系统下支持XP的外观,并不是可以让程序设置XP的外观。位于Win32下最后一个控件,当加入后如果系统是XP那么按钮就会变为对应主题的按钮。如果操作系统是XP,将TXPManifeS加入到窗体上,就可以使窗体以及其他所有孔件实现XP效果。如果不是XP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论