1、基于CS模式下云打印系统的设计与实现版权声明任何收存和保管本论文各种版本的单位和个人,未经本论文作者同意,不得将本论文转借他人,亦不得随意复制、抄录、拍照或以任何方式传播。否则,引起有碍作者著作权之问题,将可能承担法律责任。原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明,本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日Abstract基于C/S模式下云打印系统的设计与实现F u(安康学院
2、电子信息工程系,陕西安康,725000)摘 要 随着“云”概念地引入,在对“云”概念理解基础上,为了解决传统联机打印(网络共享打印)的不足之处,同时高效率地解决繁琐的打印任务,云打印地实现有着重要的意义。论文中研究基于C/S模式下系统的设计与实现,在数据收发基础上了增加了客户端对数据地加密和服务器端对接收的文件,文件名称和大小创建内存映射表并排序输出给打印机的功能,以VC+6.0为开发工具,采用Windows的核心编程技术内存管理和多线程操作对数据进行高效处理,在WindowsXp平台完成云打印的功能。为了确保数据安全完整和服务器高效地处理大量的数据,着重研究了网络通讯的数据安全和内存管理、内
3、存映射技术。在检测客户端和云端服务器数据是否有变更时,采用MD5技术生成服务器中存放文件的MD5摘要和最新的客户端测到得MD5摘要对比,确保数据完整。在服务器接收大量数据的时候,对文件名和大小创建内存映射表,然后通过对内存地址地访问,来访问数据,实现了高效和快速处理数据的功能。经测试,系统运行正常、良好,能够实现云打印功能。 关键词 C/S模式;数字签名;内存映射表Design and Implementation of the Cloud print system based on C/S mode JING Qi(Department of Electronic and Informati
4、on Engineering,Ankang University,Ankang,725000)Abstract With the introduction of the cloud consept,the implementation of the cloud printing based on the understanding of the cloud concept has an important significance ,Which is used to solve the inadequacies of the the traditional online printing (s
5、hared network printing) and complicated printing tasks efficiently.The Paper design and mplementation of the cloud print system based on C/S mode .It adds the function of the encryption of the data by the client and Creating a memory mapping table output to the print queue based on the received text
6、 ,Which uses the VC+ 6.0 as a tool and adopts Windowss core programming technology of memory management and multi-threaded operation to deal with the data efficiently.It complete cloud printing in WindowsXp platform. To ensure the security of data network communication and servers processing large a
7、mounts of data efficiently,the paper focuses on digital signature technology and the techniques of memory management and memory mapping .When detecting whether the data of the client and the server changes or not,it compares MD5 summaries used MD5 technology to generate files stored in the server wi
8、te MD5 summaries measured by the latest client to ensure the integrity of the data .when The server receives large amounts of data, it creates a memory mapping table on the file name and size .Then it obtains the data by visiting the memory address,achieving the function of dealing with the data qui
9、ckly and efficiently. After testing, the system is operating normally and can achieve the function of cloud printing .Key Words C/S mode; digital signature;Memory mapping table目 录1绪论11.1课题背景与提出11.2 国内外研究现状11.3研究的目的和意义22系统可行性分析32.1技术可行性32.1.1 网络通讯的设计原理32.1.2客户端机与服务器模型52.1.3网络通信的数据安全62.1.4内存管理,内存映射技术8
10、2.1.5虚拟打印技术82.2操作可行性92.3经济可行性92.4小结93 系统分析与设计103.1系统开发工具及简介103.2 系统总体框架113.2.1设计流程图113.2.2 系统类图123.3 功能模块设计133.3.1 基本功能模块133.3.2 服务器和客户端时序图143.4 小结164系统实现174.1系统开发环境174.2系统各功能模块的实现175系统测试235.1系统测试目的与意义235.2测试过程235.3测试结果255.4问题及解决276 总结与展望28参考文献30致 谢32 1绪论1.1课题背景与提出 目前传统的打印模式,基本处于人工管理阶段,缺乏有效的管理手段和工具,
11、造成打印资源浪费,而且对打印文件没有进行必要的安全处理,使打印机密泄漏。在如今这个信息化管理的时代,网络调度打印是未来发展的趋势,因为它没有地域的限制,不需要手持打印文件,去寻找打印终端,只需要一款合适的软件,就可以达到网络传输文件给远程打印终端实现打印的目的,简单安全,推动了打印行业的发展,符合了更多企业和部门的打印要求。传统的打印方式最直观的打印方式就是打印共享。一台打印机连接在网络上,单位有很多电脑都可以远程操控打印机来打印文档,但是假如现在有急事,想要优先打印,那么就得提升权限为单机共享,可是这样妨碍了别的人对打印机的使用,同时如果打印任务庞大,会阻塞更多的等候打印的任务。在短时间内效
12、率不高,使打印资源浪费。本文通过网络调度打印这种方式,来实现打印资源的合理分配,其次减少了大量的人为操作,只需要通过客户端对文件的提取和发送给远程服务器,远程服务器会自动接收数据,并通过短任务优先算法,加入打印队列等候打印机打印,为人们今后的生活提供了更多便捷。1.2 国内外研究现状 2011年4月 Google 第一次对外宣布了云打印计划1,这一功能不但可以让远程无线打印成为现实,更解决了手持设备打印不方便的问题,本系统从中提取了“云打印”的思想并总结了制作思路,为制作本软件奠定了基础。 截至今日,Chrome 中的云打印已经基本可用,而另外一方面 Google 的合作伙伴 HP 也在今天隆
13、重发布了全系列支持云打印的无线打印机,用户可以从 Cr-48,移动版 Gmail 和 Google Docs 等支持云打印的应用中直接打印到这些打印机上。 当使用 Google 云打印进行打印时,文件会通过网络安全地发送到的打印机。由于打印工作是通过网络进行的,因此无论与打印机的距离是远是近,Google 云打印都能工作。无论用的是手机、传统的台式机还是介于两者之间的设备(如平板电脑),都可以使用 Google 云打印。 借助云端打印机,能立即体验谷歌云打印。由于云端打印机可以通过家中或办公室的无线网络直接注册谷歌云打印服务,因此能随时使用。此外,因为云端打印机总是会连接到网络,所以其驱动程序
14、和固件无需的干预即可更新至最新状态。谷歌云打印还支持传统的非云端打印机,因此可以使用现有的任意打印机立即开始体验。 谷歌云打印是通过软件实现与远程打印服务器的连接,只要拥有打印资源,便可以通过互联网通讯实现,手机或者PC客户机软件实现数据发送给远程云端打印,然而本文研究的是一种网络数据传输打印,对于数据的安全和数据的完整提供了更高的要求。1.3研究的目的和意义对于如今的很多大小型企业和学校甚至政府单位来说,如果遇到大量的打印任务,那么对于传统的打印方式来说,肯定会耗费大量的打印时间,对于人力和财力无意是一种损耗。因为打印资源有限,合理的分配打印资源,如何让打印资源充分利用是存在的问题;其次在时
15、间上非正常的工作时间,打印机没有人为操作,就不能进行有效及时的打印;有时候打印的数据在传播过程中会造成不必要的损失甚至丢失,这样打印就不能正常进行,所以在保证数据完整和安全的前提下,对大量打印数据进行统一的管理和无人值守操作的自动打印调度是完全符合广大客户的需求。通过网络调度打印推动了信息化社会信息的快速交流,利用网络传输达到了快速、高效、安全,节省了人力、财力、物力,让有限的打印资源能够合理充分使用的同时,提高了生产力,为更多的打印商提供了创造财富的新途径,足不出户,就可以收到各地发来的打印订单,第一时间解决客户的打印问题,也创造了利益。其次对于各大企业和学校来说网络调度打印的实现,解决了更
16、多人为了争夺优先的打印资源,排队等候,耗费大量时间,对于紧急的打印任务不能及时打印造成不良的后果等诸多问题。网络调度打印不仅仅是解决人们的打印问题,还可以对其功能的改进和扩展,以适应更多类似的服务行业,高效的解决顾客的需求。比如餐饮业,可以发展成为一个网络调度订餐系统,这样可以随时随地,解决客户的就餐问题;比如订票问题,通过这个调度打印可以第一时间解决客户的乘车出行问题等等,也就是说,网络调度打印它不仅仅是一个系统软件,不仅仅只针对打印问题,它是可以扩展和延伸地,对于各个行业都可以涉及到,对于今后很多问题都可以合理化解决,这就是本系统软件最大的意义之所在。1系统分析与设计2系统可行性分析2.1
17、技术可行性 2.1.1 网络通讯的设计原理TCP/IP是国际互联网所采用进行网际互连的通信协议。IP互连协议(Internet Protocol),负责主机之间的传输数据。TCP传输控制协议(Transmission Control Protocol),负责在应用程序之间传递数据。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。ICMP互连网控制报
18、文协议(Internet Control Message Protocol),处理主机间的差错和传送控制。ARP地址解析协议(Address Resolution Protocol),负责将网络层地址转换成链路层地址。RARP反向地址解析协议(Reverse Address Resolution Protocol),负责将链路层地址转换成网络层地址。TCP/IP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程序与系统内核之间的网络编程接
19、口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送一个报文时,都期望对方发送确认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。接收计算机重新计算校验码,再与收到的校验和进行比较。如果不匹配,就表明在传输过程中发生了错误。传输控制协议TCP是一个使用校验和确认信息以及其它可靠数据传输技术的可靠协议。相比之下,
20、不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不通知发送方。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是错误的,由于邮递系统不能将信退回给,所以就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丢失的信件。TCPIP协议组中存在的两个基本数据服务是:字节流服务和数据报服务。使用字节流的协议将信息看作一串字节流进行传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进行传输。协议单独发一个数据报,与此同时数据报之间不相互依赖。例如,假设使用字节流协议
21、发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。连接的接收方可以按每次20字节读数据(要读5次)。传输控制协议是字节流协议。字节流协议不关心每个数据段的长度。如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。用户数据报协议和互连网协议使用数据报传输数据。数据报类似于信件。在TCP/IP术语中,端口(Port)类似于IP地址,IP地址与主机地址是相联系的,端口和协议相联系。IP数据报保存目的和源
22、IP地址,同样传输协议也保存源和目的端口号。Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配”的端口。通用口分配是特定应用程序广泛使用的一个协议端口。22.1.2客户端机与服务器模型(Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
23、传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。C/S结构的
24、优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。具体表现在以下两点:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行
25、数据负荷较轻。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立这样的规则。2.1.3网络通信的数据安全(1) 网络通信的数据安全包括以下几个方面:1) 数据传输的安全性,数据传输的安全性是保证在公网上传输的数据不被第三方窃取。2) 数据完整性对数据的完整性需求是指数据在传输过程中不被篡改。3) 身份验证在网上的通信双方互不见面,必须在相互通信时确认对方的真实身份。4) 不可抵赖性在网络通信中开展业务的各方在进行
26、数据传输时,必须带有自身持有的、无法被别人复制的信息,以保证发生纠纷时有所对证。通常情况下,网络通信中采用的安全技术主要有防火墙技术、数据加密技术和身份认证技术等。本文讨论的重点是数据加密技术在网络安全策略中的应用。(2) 数字指纹技术数字指纹是一种形象的说法,在密码学上被称为“信息摘要”。它是通过安全的单向散列函数作用于将要发送的信息上产生的:Message Digest =Secure Hash(message)单向散列函数有三个主要特点:1) 它能处理任意大小的信息,并将其按信息摘要(Message Digesgt)方法生成固定大小的数据块,对同一个源数据反复执行Secure Hash函
27、数将总是得到同样的结果。2) 它是不可预见的。产生的数据块的大小与原始信息的大小没有任何联系,同时源数据和产生的数据块看起来也没有明显关系,源信息的一个微小的变化都会对小数据块产生很大影响。3) 它是完全不可逆的,没有办法通过生成的数据块直接回复源数据。数字指纹技术不是一种加密机制,但却能产生信息的数字“指纹”,通过验证信息的“指纹”来确保数据没有被修改或变化,保证信息的完整性不被破坏。常用的信息摘要算法有:MD2、MD5和SHA-1等。3) 数字签名 数字签名是用来保证信息传输过程中信息的完整和提供信息发送者的身份验证和不可抵赖性的一种安全技术。52.1.4内存管理,内存映射技术内存管理,是
28、指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。一个执行中的程序,譬如网页浏览器在个人电脑里将资料转换于真实世界及电脑内存之间,然后将资料存于电脑内存内部的过程。内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射
29、文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从
30、内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。 2.1.5虚拟打印技术虚拟打印机,实际的打印驱动安装在打印服务器端,将打印数据转换为版式文件或者其他指定格式的文件,实现监控的目的是一个虚拟打印驱动程序。这样可以对每台Client客户机的所有应用程序都屏蔽除了虚拟打印机以外的所有打印机,使打印数据必须经过虚拟打印的打印机处理;最后由虚拟
31、打印机将打印数据转发到真正的打印服务器完成打印任务。虚拟打印机,它是一种软件,能模拟真实打印机的功能,打印文件。安装完毕,打开“控制面板”中的“打印机和传真”,会看到所安装的虚拟打印机,可以模拟真实的打印机环境。鼠标双击将其打开,可以对其“打印首选项”和“属性”进行修改,从而设定是否共享、可使用时间、是否后台打印和优先级,以及纸张大小、版式安排等。它们同样能截获所有Windows程序的打印操作,或模拟打印效果,或完成某一特殊功能。有些软件自带虚拟打印机,有些则是专门的虚拟打印机,利用这些虚拟打印机,可以帮助完成很多特殊的任务。虚拟打印机的打印文件是以某种特定的格式保存在电脑上。 2.2操作可行
32、性网络调度打印软件的可视化相当好,信息简单明了,用户操作简单,对操作人员的使用技术水平要求很低,几乎无技术要求只需对操作系统使用熟练,即可手工作操作。在操作技术上也具备可行性。与此同时每一个按钮都有注明的文字,这对按钮的操作简单明了,IP地址栏上面有注明的服务器IP地址和端口号,用户只需要从客户端手动输入IP地址和端口号就可以连接远程服务器,不需要账号和密码,这在一定程度降低了客户的操作难度,而且服务器的自动调度减去了以往要手动打开打印机,然后选择要打印的文件,进而执行打印操作,一连贯的繁琐操作,服务器会自动接收文件,对文件进行自动加入打印队列,最后自动调度打印机打印的,所以综上所述操作具有可
33、行性。2.3经济可行性任何系统项目的开发,都会受到资源和时间上的限制。因此,在每一个项目开始开发之前,都要进行全面的具体的可行性分析,这样可以最大限度的减少项目开发风险,避免大量的人力、物力的浪费。在当今的信息化高速发展时代,客户端服务器管理模式可以满足多样化的客户需求,服务器工作统一化、快速化、整体化。这种模式相对提高了打印的工作效率,提升了打印服务器端的经济效益,本系统软件用C/S结构模式,客户端对计算机配置的要求不高,低配置电脑也可以完全满足本系统的需求,满足用户的使用需要。同时,服务器在管理工作上的高效率和便捷性远远超出了本系统所开发的成本,在经济方面具有可行性。 2.4小结 本章主要
34、课题背景和现状,课题研究的目的和意义,并对课题工作做出了规划安排。最后简要介绍了本课题开发所采用的相关工具和技术。 9系统分析与设计3 系统分析与设计3.1系统开发工具及简介(1)本系统服务器处理的数据量大,对带宽要求高,其次对于内存和CUP性能要求高。(2)Visual C+6.0由Microsoft开发, 它不仅是一个C+ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开
35、发工具。 这些组件通过一个名为Developer Studio的组件集成开发环境。Microsoft的主力软件产品。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,Visual C+已成为专业程序员进行软件开发的首选工具。Visual C+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结。 Developer Studio是一个
36、集成开发环境,日常工作的99%都是在它上面完成的。虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能。Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等。Platform SDK是Visual C+和整个Visual Studio的核心功能,Platform SDK是以Microsoft C/C+编译器为核心,配合MASM,辅以其他一些工具和文档资料。Developer Studio没有编译程序的功能,CL、NMAKE和其他许多的命令行程序,是构成Visual Studio的基石。结论:通过V
37、C6.0丰富多彩的功能完全有能力在Windows平台设上设计出符合要求的软件。 3.2 系统总体框架3.2.1设计流程图根据客户的实际情况,为了能够尽量满足各种用户需求,在进行基于客户端服务器的网络调度打印系统的技术方案设计时,采用C/S模式来进行设计。根据客户端和服务器结构的要求,系统平台共分成2部分:客户端、服务器。图3.1设计流程图 客户端要执行以下几个步骤: (1)初始化Socket (2)读取端口号和IP地址 (3)与服务器建立连接 (4)载入本地打印数据 (5)对数据进行MD5数据加密 (6)发送文件到指定端口服务器。服务器主要负责对数据的接收、校验、输出提交给打印机服务器端执行以
38、下几步骤: (1)初始化Socket (2)绑定端口和IP地址 (3)创建端口侦听,启动多线程循环监听链接 (4)接收数据 (5)对数据进行校验,确保数据是否完整 (6)如果数据不完整,丢弃并添加日志 3.2.2 系统类图图3.2系统类图 (1)CLANServerClientApp继承CWinApp实现Windows 操作系统的应用程序的初始化、运行和终止 。 (2)CAboutDlg继承CDialog用户在屏幕上显示的对话框。也就是初始化定义了一些提示对话框。如服务器启动按钮其中DoDataExchang实现主对话框和提示对话框的交互。(3)CLANServerClientDlg继承CDi
39、alog在屏幕上显示的对话框(主对话框),该类为主类调用CLanSocketClient类实例实现客户端操作;调用CLanSocketServer实例实现服务器端操作。(4)ClanSocket类继承CAsycSocket,CLanSocketClient调用该类方法,为客户端操作提供服务(5)CLanSocketClient类继承CAsycSocket实现客户端的操作,客户端可以有多个实例6.CLanSocketServer类继承CAsycSocket实现服务器端操作,服务器端只有一个,用多线程监听管理客户端。3.3 功能模块设计3.3.1 基本功能模块图3.3基本功能模块图首先对于客户端做
40、功能模块的分析:客户端面对的是广大持有移动设备的客户群体,所以对于移动设备的性能要求不高,并且界面设置简单化,操作容易,上手快,适合每一个客户的需求。打印客户端通过输入远程服务器端的IP地址,然后点击链接,客户端就可以通过读取服务器端IP,自动分配与之绑定的端口,实现基于TCP/IP协议的网络通讯,这样只要有可以联网的移动设备,那么数据就可以完成简单的通讯了。下一步对于数据发送模块的需求分析:要把本地文件载入客户端发送到远程服务器过程中,很多时候个人的数据是保密的,不愿意被第三方窃取的,所以对于客户端来说,在载入本地文件,实现数据发送的过程,添加了MD5数据加密校验的过程,这样有效了保证的数据
41、安全,是满足客户需要的。其次对于服务器端功能模块做下一步的需求分析:当服务器端接收数据的时候为了验证数据是否完整那么必须进行数据校验,这样不至于对于错误的数据或者不完整的数据,进行排队处理,阻塞打印资源。最后对于打印任务做短任务优先选择法进行打印排队,因为这样单位时间内就可以处理更多的打印任务,解决了更多客户的打印问题,提高了打印效率,合理分配了打印资源。 3.3.2 服务器和客户端时序图(1)客户端的时序图图3.3客户端的时序图图3.3描述了从客户端到远程服务器的数据上传,显示了上传数据时系统的运行过程。上传数据时系统仍然会首先显示界面,首先连接服务器,如果连接服务器成功,那么通过客户载入本
42、地文件就可以实现对文件的加密,然后发送密文件到服务器,接收连接请求成功后会自动监听数据源。(2)服务器端的时序图图3.4服务器端的时序图图3.4描述了从服务器端接收数据的过程,服务器循环监听,如有客户端请求连接,那么服务器端相应后,会对接收到的密文件进行分析,查看数据是否完整,如果数据不完整,丢弃并添加日志文件,这部分在DEBUG过程中完成,最后如果数据校验成功那么对所有接收到的数据进行文件名和大小创建内存映射表,然后排序输出个打印队列,最后由打印机自动完成打印任务。153.4 小结本章主要对系统总体框架进行了设计,再根据系统框架和具体功能设计了类图。在设计流程图设计好后又设计流程图实现的功能
43、进行了细化,即将各个模块的功能具体到每一个类中,实现了主要类的设计工作。最后画出了服务器端和客户端的顺序图,为系统的实现提供依据。系统实现4系统实现4.1系统开发环境 (1)应用客户端: 应用程序:客户端 开发语言:C+ 操作系统:Windows XP 编译器:VC+ (2)应用服务器: 应用程序:服务器 操作系统:Windows XP CPU:四核以上 内存:4GB以上4.2系统各功能模块的实现(1)客户端在数据收发过程中,主要功能的实现关键代码实现:void CLANServerClientDlg:OnClient() / TODO: Add your control notificati
44、on handler code herem_Type = 1;m_IP.EnableWindow(TRUE);GetDlgItem(IDC_START_LINK)-SetWindowText(连接);(AfxGetMainWnd()-SetWindowText(客户机);LRESULT CLANServerClientDlg:NETMessage(WPARAM wParam, LPARAM lParam)CString str;switch(wParam)case CLIENTREAD:str = m_SocketClient.GetMessStr();m_Info = str;break;c
45、ase CLIENTSEND:break;case CONNECT:m_Info = 已连接上服务器 !;break;case SERVERCLOSE:m_Info = 服务器已关闭;break;case SERVERREAD:str = m_SocketServer.GetMessStr();m_Info = str;break;case SERVERSEND:break;case ACCEPT:KillTimer(2);m_Info = 已接受客户机请求 !;break;case CLIENTCLOSE:m_Info = 客户机已关闭;break;UpdateData(false);ret
46、urn TRUE;(2) 客户端对数据加密功能的实现 关键代码:服务器界面主要有:服务器绑定IP地址栏、固定端口号、启动服务器按钮。数字签名确保文件传输安全同时按大小排序输出给打印机:const unsigned char MD5:PADDING64=0x80;MD5:MD5()state0=0x67452301;state1=0xEFCDAB89;state2=0x98BADCFE;state3=0x10325476;MD5:MD5()bool MD5:setMessage(const char * lhs)string tem(lhs);data = tem;state0=0x67452301;state1=0xEFCDAB89;state2=0x98BADCFE;state3=0x10325476;return true;bool MD5:setMessage(const std:string &lhs)data = lhs;state0=0x67452301;state1=0xEFCDAB89;state2=0x98BADCFE;state3=0x10325476;return true;MD5:MD5(const c