ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:721.50KB ,
资源ID:2724294      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(本科毕业论文---网络同步备份系统的设计与实现(论文)设计.doc)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

本科毕业论文---网络同步备份系统的设计与实现(论文)设计.doc

1、本 科 生 毕 业 论 文论文题目:网络同步备份系统的设计与实现姓 名:徐学文学 号:201120210117班 级:1122101班年 级:11级专 业:网络工程学 院:软件学院指导教师:周华清(副教授)完成时间:2015年 5月10日作 者 声 明本人以信誉郑重声明:所呈交的学位毕业设计(论文),是本人在指导教师指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出,不包含他人成果及为获得东华理工大学或其他教育机构的学位或证书而使用过的材料。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标

2、明。本毕业设计(论文)引起的法律结果完全由本人承担。本毕业设计(论文)成果归东华理工大学所有。特此声明。毕业设计(论文)作者(签字): 签字日期: 年 月 日 本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。 学位论文指导教师签名: 年 月 日网络同步备份系统的设计与实现徐学文The design and implementation of network synchronization backup system Xuewen Xu2015年 5 月10日摘 要对于许多关键系统,容灾备份对数据的保护具有不

3、可替代的作用。在现实工作中我们经常能听闻有些企业因为数据的丢失而导致不可估量的损失,导致整个系统瘫痪。国内做数据备份的公司起步比较晚及其产品并不成熟,因此主要是海外的公司在这方面占很大的市场份额,而其价格也非常贵,以致我国小型银行系统、大型公司、小型企业的网络系统很少有比较完备的灾难备份系统,一旦发生数据灾难,后果可想而知。目前解决数据备份的方法很多,特别是在远程容灾系统基于网络备受关注。采用该方法实现的在线备份系统具有数据安全性高、系统运行维护开销低等优点。在数据备份这方面有巨大的市场潜力。本论文网络同步备份系统,基于C/S模型。具有客服端维护成本低,系统扩展容易,客服使用方便等优点。本系统

4、由客户端和服务器两部分组成,使用C+开发语言,其稳定性更有保障。客服端完成用户的注册和登录,同时发送本地文件到远端的服务器进行备份。服务器端验证用户的登录,当客服端的数据丢失时供其下载。本系统的最大优点就在于网络同步,无需人为干预,自动扫描本地文件并完成数据同步备份,大大降低了数据出错率。关键词:系统容灾;网络同步;备份;C+AbstractFor important system,disaster backup has an irreplaceable role.In practical work,we can often heard some companies because of th

5、e loss of data and result in an immeasurable loss,cause the whole system paralysis. However do data backups companies in China started late and its products are not mature,so mainly overseas company accout for a large market share in this aspect,and the price is very expensive,so that small bank sys

6、tem in our country,the network system of large companies,small businesses have few relatively complete disaster backup system,in the event of data disaster.At present there are many data backup solutions,notably the different disaster recover system based on network.Online backup system is realized

7、by using this method has a high data security,system running maintenance overhead small.It has vast market prospect.Network synchronization backup system,it based on C/S model,With the end of the service maintenance cost is low.This system consists of two parts, the client and the server, using C+ d

8、evelopment language, its stability is more secure.The server to complete the user registration and login, at the same time send a local file to the remote server for backup .Server-side validation of user login, when the end of service data loss for download.The biggest advantage of this system lies

9、 in the network synchronization, without human intervention, automatic scanning local file and complete the data synchronization backup.Keyword: System Disaster-tolerant;Network Synchronization;Backup;C+目 录摘 要IIIABSTRACTIV目 录V1 绪论11.1 课题研究的背景11.2 国内外现状11.3 课题研究的意义21.4 论文结构22 系统设计分析42.1 可行性分析42.1.1 技

10、术可行性42.1.2 经济可能性42.1.3 操作可能性42.2 开发工具42.2.1 Visual Studio 2010程序开发平台42.2.2 C+程序设计语言43 系统需求分析53.1 需求分析53.2 数据需求分析53.3 数据流图64 系统功能界面与实现74.1 服务端74.1.1服务器端界面介绍74.1.2 服务器端功能实现74.1.2.1 服务器端添加用户84.1.2.2 服务器端验证用户94.1.2.3 服务器端与客户端同步文件94.1.3 服务器数据库114.3 客户端114.3.1客户端界面介绍114.3.2客户端功能实现124.4 同步成功124.5 同步到服务端135

11、 程序测试与维护145.1 系统的配置145.2 系统的维护145.3 系统测试15结 论16参考文献17致谢18附 录19东华理工大学毕业设计(论文)系统设计分析1 绪论1.1 课题研究的背景信息化将引领世界潮流,对于促进社会经济的发展具有不可替代的作用。随着网络覆盖范围的扩大和网络通信技术的飞速发展,信息的共享变得简易方便,日常工作、生活的信息量呈几何式增长。我们生活在一个数据大爆炸的时代。而搭建网络的最根本目的就是要更方便地进行数据共享,而信息的安全性逐渐成为一种挑战,如果不能确保这些数据的安全,那么对网络的巨大投资将变得毫无意义。系统的数据才是最珍贵的资源,计算机软硬件,实质上都是数据

12、资源的一种载体,而数据的价值远远大于设备的价值。在这个信息化时代,企业和政府机构对数据信息和计算机网络应用产生了越来越强的依赖,时时刻刻在线传递的大量通信数据和海量存储的数据库,成了大型企业和各级政府机构、保险、金融赖以生存的命脉。然而,人为误操作、黑客攻击、木马病毒、系统自身故障、自然灾害等不确定因素是威胁数据安全的主要原因。任何原因导致的数据不完整、毁损甚至丢失,都将影响系统作用的发挥,对一家企业产生的损失将无法估量,甚至不可弥补。位于美国世贸大厦的公司在震惊全球的 911 事件中就曾发生过数据丢失的悲剧,只有四分之一的公司使用了海量数据存储系统,而正是这些公司在灾难发生后迅速恢复业务,而

13、其他很多公司则因数据丢失而一蹶不振甚至直接从该行业消失。虚拟化的广泛应用、云计算的出现、数据量每年的高速增长、数据类型和来源多样化所有这些因素都让现代存储技术在企业和组织成功中扮演着越来越重要的角色。数据的价值与及数据再生产的代价都是很高的,然而任何的自然灾害或是认为操作失误都会对数据造成威胁,但是这并不意味着我们就束手无策。实际上,只要我们能够做到有效、及时的数据备份,就可以解决后顾之忧。如果发生数据丢失事件,应以快速恢复系统的数据为首要目标,而数据备份就是迅速恢复数据的前提。备份作为一种数据安全策略,是避免数据丢失的最基本也是最有效的手段,冗余和高可靠的方案只是降低了数据丢失的发生率并不能

14、从根本上解决数据安全问题。当原始数据发生丢失或是遭到破坏时,我们就可以利用备份数据恢复原始数据,使系统恢复正常。作为数据恢复的一种手段,备份的目的是为了在数据灾难后,缩短系统瘫痪时间,尽可能将损失降到最低;备份的最终目的:数据恢复!有效的备份,能够让企业以最少的投资,得到最可靠的服务。数据备份系统是计算机信息系统安全的一个非常重要环节。1.2 国内外现状看一家企业有多成功,我们主要就是看这家企业拥有多少用户。用户本身只是载体,其内在的数据才是企业的血液。数据已成为企业的战略核心,其对数据的渴求已到寸土必争的地步,业务数据正扮演这重要的角色,珍贵的数据其丢失的风险同时也变高。对很多用户来说,备份

15、已经是个比较熟悉概念,但对它的重要性及地位却不一定有清晰的认识。现代企业不仅需要一个稳定可靠的IT环境,但也需要保护和存储业务数据的备份数据,从而提高数据的高可用性。另外,传统的存储方式已经很难满足数据量大幅度增长所需要的环境。在这种压力下,数据存储经历了集中式存储、分布式存储和SAN(Storage Area Network 存储区域网络)、网络连接式存储(network-attached storage,NAS)阶段。网络同步备份是继文件服务之后第二个最广泛的网络存储应用。早在上个世纪 80 年代中期,国外就对网络备份系统进行研究和开发。而如今也就只剩下像 EMC、惠普、VERITAS 、

16、Legato 、IBM 这样的巨头,其产品成熟、技术先进、服务周到是许多银行、金融、保险行业的不二选择。目前我国已有的数据备份系统水平比较低,主要是因为计算机网络系统用户,信息安全意识淡薄,缺乏数据备份系统的知识和操作技能。大多数的存储和备份系统比较简单,主要缺点是:第一,手工操作,效率低,出错率高;第二、无法实现在线同步服务,需暂停系统备份,影响业务运行;第三、遇到严重的安全事件或毁灭性灾难以后无法恢复数据。第四、采用国外产品,价格昂贵,不符合国家战略要求,容易留下安全隐患。1.3课题研究的意义 我们都很清楚在数据备份方面我国与国外相比有比较大的差距。国际数据备份技术及其应用已发展到一个比较

17、成熟的阶段,技术先进,而国内还处于萌芽阶段,尽管政府在数据备份方面投资不少,而刚刚起步的国内厂商依然举步维艰。我国的网络数据安全备份软件在科研方面同样也取得喜人的成果,也生产了一些产品,但不管是在市场占有率方面还是在产业规模以及技术水平和开发能力上我们与国际先进水平相比还是有着很大的差距。其中备份软件是进行网络数据备份的非常实用的工具,国内在这方面的成功案例屈指可数;为了缩小与发达国家的差距打破国际品牌的垄断和发展民族品牌,研发网络备份软件变得更加需要和迫切。我们创建数据的副本即备份并严格保存的唯一目的是希望用它恢复被删除或损坏的数据。处于业务和法规的原因,企业对于数据存储、保留和可用性的要求

18、日益提高,需要保存的数据也不短增长。信息的不断增长和紧缩的IT预算以及没有足够时间进行备份让数据安全问题更加复杂。企业为了满足服务水平协议(SLA)的要求,需要一个更快的方法,恢复备份的数据。备份的一个目的是为了应对灾难恢复的需求。当主位置因灾难而不能工作时,备份的副本将用于在备用地点恢复数据。基于RPO和RTO的需求,企业使用不同的灾难恢复数据保护策略。有些企业使用磁带的备份方法作为灾难恢复策略,这时备份磁带介质应被运往异地进行保存,从而确保数据安全。这些磁带可以用于灾难恢复点的数据恢复。有些组织对RPO和RTO要求比较严格,为了能够在遇到灾难时以相对较短的时间恢复生产系统,组织会采用远程复

19、制技术复制数据带灾难恢复位置。而网络同步备份系统属于在线备份(热备份)可以快速恢复数据。考虑到生产本地环境安全性原因,通常数据备份一般存储在不同的介质,最好是地理冗余避免因自然灾害(地震、火灾)而造成数据丢失。在生产中心存放一份从而保证数据的快速恢复,系统正常运行;其他备份则要移到比较安全的地方保存,以保证当生产中心出现灾难后以最低代价恢复数据。1.4 论文结构第一章 绪论,主要对本课题的研究背景,现状,研究的意义等的介绍。第二章 系统设计分析,主要阐述系统开发的可行性,以及对开发系统要使用的工具进行深入了解。第三章 需求分析,对于本次毕业设计的具体需求情况进行分析,分别包括系统的数据分析,数

20、据流程图等内容。第四章 系统功能展示。主要介绍系统各种功能的实现,同时列出关键代码。第五章 系统测试与维护。主要描述对备份系统各环节的测试和整个系统的测试最后是结论和参考文献。2系统设计分析2.1可行性分析 在对整个网络同步备份系统进行需求分析时,主要综合了技术可行性、经济合理性、系统实用性等各方面。以避在研发和后期投入使用时出现故障,保证备份系统成功开发。可行性研究主要集中在以下三个方面:2.1.1 技术可行性通过对系统的功能分析,我们使用Visual Studio 2010作为后台数据支持,程序设计选择C+程序设计语言进行程序编写,C+语言经过多年的发展和更新,已经成为一种非常稳定的语言,

21、因此本此课题研究在技术层面上,是完全可行的。2.1.2 经济可能性经济可能性主要是分析本系统在研发成本和投入使用后的运维费用上的投资。同时对系统投入使用后的市场效益做评估。确保收益大于投资,从而保证整个项目能顺利完成。本系统为企业的重要文件设计,通过使用本系统能够大大提高工作人员的效率,因此,本系统在经济上是可行的。2.1.3 操作可能性因为本系统采用的是C/S模型。我们为客户开发了一个简洁大方的客服端界面作为系统入口,使用户操作起来简便。软件程序开发是否能够取得成功,一是市场的需求,二是程序开发所需要软件开发工具,以及开发技术和当时硬件的发展水平。从这两个方面而言,网络同步备份系统设计的操作

22、性是可行的。 2.2 开发工具 2.2.1 Visual Studio 2010程序开发平台Visual Studio是微软公司推出的开发环境。是目前运用较为广泛的应用程序开发环境。Visual Studio 2010版本与之前版本有所不同的是重新设计和组织集成开发环境(IDE)的界面,增加了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP,并且支持开发面向Windows 7的应用程序。在支持数据库方面加入了IBM DB2和Oracle数据库。Windows平台下 的Windows应用程序、智能设备应用程序、网络应用程序和Office插件等

23、都可用Visual Studio 创建。于1992年发布的Microsoft C/C+ 8.0 (Visual C+1.0)与原有C+开发工具Microsoft C/C+ 7.0相比,其开创性地引进了MFC(微软基础类库)库并完善了源代码。从此告别了DOS的字符界面,用户可以在GUI界面下进行开发,开创了软件开发的可视化(Visual)时代。从此,大佬的时代开始了。2.2.2 C+程序设计语言C+是C语言的延伸,具有面向对象编、泛型编程和过程化编程于一体的编程语言。用C+语言编写的软件稳定性高。C+与C语言最大的不同就是C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷,C

24、+更简洁的说就是C的升级改造,在保持C的简洁高效特点同时对C的库进行了扩充,因此C+比C更安全。很多优秀的程序框架都是用C+编写的,比较有名的有Boost、Qt、MFC、OWL、wxWidgets、WTL。3 系统需求分析 3.1 需求分析在对整个网络同步备份系统进行需求分析时,主要综合了技术可行性、经济合理性、系统实用性等各方面。以避免无意义的投资,保证新系统成功开发。需求分析主要是针对市场需求而对系统的各种功能进行分析,可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。对于本系统,分为客服端和服务器端两个模块。在客户端用户可以注册、登录。登录成功后,自动扫描本地目录,

25、发现新文件或是文件更新自动同步到服务器。定时比较服务器和本地目录的文件版本,自动下载最新文件。当客户端不小心删除了本地文件可以从服务器端进行文件的下载。服务器端对系统的需求包括:用户注册,并对登录的用户进行身份验证。保留客服端文件版本的信息,提供客户端文件的上传、下载功能。对用户的存储容量进行管理,当用户同步文件时超出了系统的存储能力,服务器将对用户发出警告。经对整个系统操作流程的分析,了解各层模块的功能需求,分析得出了本系统使用者的功能模块图,如图下所示:图3-1 系统功能模块图3.2 数据需求分析通过对系统数据流的分析,下图是用数据字典描述从客户端到网络同步备份系统到服务端的信息流、数据在

26、存储系统中的存储、数据处理过程和模块实体。分析系统功能,绘制出系统数据流图,直观显示出系统数据在系统各个部分之间的流动情况。如图3-2描述,客服端触发事务(插入、修改、删除等)传输到网络同步备份系统,存储系统对数据进行相应的修改并将操作结果发送到服务端。服务端对数据也做相应的更新。用户登录验证用户信息 验证失败登录客户端 验证成功退出系统 发现数据更新与服务端比较 本地数据更新本地数据丢失 服务器存 储 系 统 同步到服务器 从服务器下载 数据存储 数据发送图 3-2 数据流程图 3.3 数据流图在图3-3中,主要描述了整个系统的数据流图。上行数据:用户成功登录后,网络同步备份系统从客户端接收

27、信息,同时备份系统将从客户端接收的信息写入存储系统,服务器再通过备份系统接收来自客户端的数据。下行数据:当服务端发现新版本的文件时,将发送信息给网络同步备份系统,备份系统将更新的信息写入存储系统进行数据库更新,信息存储系统将更新的文件通过网络同步备份系统发送给客户端。在整个数据流动过程中,信息储存是其核心。不管是用户到服务端还是服务端到用户,其数据先经信息储存系统进行数据更新,再将更新后的数据发送给用户或服务端。图3-3 数据流图3.4 协议包基本格式 3.4.1 包格式此处描述的是通过网络传递信息时用到的协议,为IAP+TIP,TIP协议为程序内部传输信息所使 图3-4 协议包图 3.4.1

28、.1 IAP/IBP包头 下面主要介绍IAP/IBP协议包头的各个参数,下图为IAP/IBP包头格式。 图3-5 IAP/IBP包头图0XEB和0X90字段:这两个字节为同步头,为固定值,分别是0xEB和0x90。Header Length字段:包头数据长度为1个字节,即包头最长不超过256字节,为了找到属性的起始位置,必须从包头的开始位置偏移此长度就是属性的起始位置。包头长度目前设计为16字节,但不排除将来为扩展协议而将包头的长度增加。Ver字段:Ver字段表示当前协议的版本号。目前的版本号为2。Code字段:Code字段长度为1字节。编码的取值范围是0到255。通过Code,接收方可以区分

29、不同的报文类型。可以通俗地理解为需要这个包做什么事,如请求,发送,应答等等,即Code表示一类动作指令,具有动词属性。 Reserved字段:保留字段,必要时候可以作为Code字段的扩充,平时应该填0。Src Addr字段:报文源发送地址,指第一个目标产生此报文的程序的地址Dst Addr字段:报文目的地址,指目标产生此报文的程序要发送给最终目的地址。Num字段:Num字段长度为2字节。编码的取值范围是0到65535,表示发送包的序号,如果接收方需要对发送方的命令进行回复,那么回复报文中需要把接收方的Num值拷贝到回复命令中进行回送。Num值达到了65535后,自动翻转到0,并重新开始记录包序

30、号。Session ID字段:表示各模块之间进行交互,2字节,范围从165535,即最多同时有65535个会话,由各模块自己分配,Session id在会话结束后回收,下一次可以重复分配使用。客户端在收到来自服务端的响应后,须在返回的报文中添加这个来自服务端报文中的Session ID。0xFFFF的session id 是告警广播专用 id。Total Length字段:2字节,Total length包括包头和属性的全部长度。 3.4.1.2 TIP属性说明TIP协议作为程序内部传输的协议,在通过网络传递时,需要加上IAP头。所有数据放在TIP的后面。下面介绍IAP协议包头的参数,包格式如

31、下图: 图3-6 TIP包头图 Code字段:命令字字段。Char型字节。 Reserved字段:属于保留字段,占1字节,主要用于属性功能的扩展,目前填0。 abtLen字段:TIP数据包的长度,包括TIP包头和后面跟的所有数据。 Tid字段:前台系统分布在不同的地方,通过tid字段区分各个站点。规定tid字段为9位数,如323020202。 Ctm字段:表示tip生成时间。 cid字段:网络套接字号。 Sid字段:前台的每个站点下面下挂很多设备,设备的编号用sid表示,以区别不同的设备。 Rn字段:最大重发次数,此字段表示当数据包发生丢失时重传包的次数。Pri字段:优先级。表示数据包转发的优

32、先级,优先级高的先转发。Mode字段:发送模式字段,先进先出:1后进先出:2。Resparm字段:最大8个字节的数据。 3.4.2 协议内容IAP头文件的code都使用0x51。根据实际需要,在TIP协议段中将需要完成的每项功能都定义了一个Code值。其中CS表示客户端向服务端发送;SC表示服务器到客户端。# CS_SENDFILE发文件# CS_SENDFILEINFO发送文件夹信息# CS_ADDUSER注册用户# CS_LOGIN登陆# SC_RELOGIN登陆反馈# SC_READDUSER注册反馈# SC_SENDFILE发文件# SC_GETFILE请求文件# SC_DELETE_

33、C_FILE删除文件客户端文件# SC_DELETE_S_FILE删除文件服务端文件# SHOW_INFO信息展示 3.4.3 协议代码实现协议作为数据传输的核心,在整个数据传输的过程中扮演着关键角色。做为业务的载体任何通信都需要协议的支持,而选择所使用协议的好坏更是决定整个系统的性能。下面为本系统所使用的协议的核心代码:bool CopyTIP(TIP_HEAD* tip, TIP_HEAD*& ctip)if (NULL = tip) return false;if (NULL = (ctip = (TIP_HEAD *)new chartip-abtLen)return false;me

34、mcpy(void*)ctip, (void*)tip, tip-abtLen);return true;void* TIP_Data(TIP_HEAD* tip)return (unsigned char*)tip+sizeof(TIP_HEAD);bool TIP_Make(TIP_HEAD* TipTmplList, unsigned char code, unsigned int parm, int dlen, void* data, TIP_HEAD*& tip)if (NULL = tip)if(NULL=(tip= (TIP_HEAD *)new charsizeof(TIP_H

35、EAD)+dlen)return false;memcpy(void*)tip,(void*)TipTmplListcode,sizeof(TIP_HEAD);tip-code = code;tip-tid = tid;tip-sid = sid;tip-cid = 0;tip-ctm = time(NULL)+time_diff;tip-resparm.parm = parm;if(dlen=(65536-sizeof(TIP_HEAD)tip-abtLen = sizeof(TIP_HEAD);elsetip-abtLen = dlen+sizeof(TIP_HEAD);if(0code

36、= code;tip-tid = tid;tip-sid = sid;tip-cid = 0;tip-ctm = time(NULL)+time_diff;tip-resparm.parm = parm;如果数据包的长度dlen大于或等于65536-sizeof(TIP_HEAD)则数据包的总长度为TIP_HEAD既该数据包只有报头没有携带数据,否则数据包的总长度为数据报头长度TIP_HEAD与dlen之和。 26 4 系统功能界面与实现 4.1 服务端 4.1.1服务器端界面介绍系统服务端界面如图4-1所示,在服务端我们可以看到客户端信息。 占用空间表示的是客户端同步到服务器的文件所占用空间

37、,便于对存储容量进行管理。文件数量表示的是客户端同步到服务器的文件数目。本地文件框中显示的是从客户端同步到服务器的文件名。心跳计数:客服端连接服务器端后,会发送心跳包和心跳回复包,用来判断和维持双方通信。心跳包里面包含了socket套接字,用来保障双方的通信临时中断后能恢复连接。显示在界面上就是为了直观感受到双方已经连接上,如果没有计数或是计数停止则表示通信故障。 图4-1 服务端窗口4.1.2 服务器端功能实现4.1.2.1 服务器端添加用户当用户在客户端注册时,服务器端接收来自客户端的用户注册信息并添加到数据库。下面这段代码是添加用户的主要代码:void CS:adduser(LOGINI

38、NFO &logininfo)string strName, strKey;strName = logininfo.user;strKey = logininfo.key;MAP_USER_KEY:iterator it;it = map_userkey.find(strName);if (map_userkey.end() != it)map_userkey.erase(it);map_userkey.insert(MAP_USER_KEY:value_type(strName, strKey);字符串strName、strKey分别表示用户名和用户密码,从登录信息logininfo中获取用

39、户信息并插入到数据库中。使用map_userkey.find(strName)函数取得用户名,再以数据库中的用户名比较,如果与数据库中的用户名不等则使用map_userkey.insert()函数插入用户的用户名和密码并保存都数据库中。 4.1.2.2 服务器端验证用户用户在客服端登录时,服务器端将对用户名、用户密码与数据库中现有的用户信息进行验证。如果用户名和密码与数据库中的信息不能匹配,服务器端返回验证失败信息,如果匹配则返回登录成功信息。以下是验证用户的主要代码:bool CS:checkUser(LOGININFO &logininfo)string strName, strKey;s

40、trName = logininfo.user;strKey = logininfo.key;it_map_userkey = map_userkey.find(strName);if (map_userkey.end() = it_map_userkey) return false;if (strKey != it_map_userkey-second)return false;return true;4.1.2.3 服务器端与客户端同步文件该部分主要描述服务器端与客户端之间进行文件同步。客户端和服务器端有相同文件:在这种情况下,先比较两端的文件。若服务器端的文件为最新文件,则调用FileS

41、end()函数使服务器端文件覆盖客户端。客户端有而服务器端没有文件:在这种情况下,先循环检查服务器端是否存在该文件。若没有,则从客户端同步到服务器并写入数据库。for (it_c = map_cFileinfo.begin(); it_c != map_cFileinfo.end(); it_c+) cf = it_c-second;it_s = map_sFileinfo.find(cf.name);if (map_sFileinfo.end() != it_s)/上个循环已经检查,此处跳过continue;/客户端有,服务端没有if (t_sUpdata t_cUpdata)/delete

42、_EP_Tip_Pack(11,0,0,0,sizeof(_finddata_t),&cf,nctip,res,rue,WAIT_BEFOREEP_XIT*1000);_EP_Tip_Copy(nctip,ncctip,res,true,WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_dlg,nctip,res,true,WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_server,ncctip,res,true,WAIT_BEFORE_EP_EXIT*1000);else_EP_Tip_Pack(9,0,0,0,sizeof(_

43、finddata_t),&cf,tip,res,true,WAIT_BEFORE_EP_EXIT*1000);_EP_Tip_Copy(tip, ntip, res, true, WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_dlg, tip, res, true, WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_server, ntip, res, true, WAIT_BEFORE_EP_EXIT*1000);4.1.3 服务器数据库在服务器文件夹version中存储的是用户备份到服务器系统的文件。在这里我们可以很明了的看到文件的修改时间,便于日后为数据恢复提供参考。当客服端数据丢失后可以从这里下载备份文件。当然服务器也要做备份,最好就是做分布式存储,防止因自然灾害发生数据丢失。服务器文件夹如下图所示:图4-2 服务器文件整个系统的数据存储是使用了C+系统自带的标准容器MAP,数据是通过typedef map MAP_FILEINFO这个结构组织的。其主要实现代码和说明如下:using std:map; /C+自带标准容器,存储文件夹内的文件信息using std:string;typedef map MAP_FILEINFO; typedef MAP_FILEINFO:iterator IT_MAP

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服