局域网即时通讯软件的设计与实现.doc

上传人:仙人指路1688 文档编号:2400838 上传时间:2023-02-17 格式:DOC 页数:48 大小:1.68MB
返回 下载 相关 举报
局域网即时通讯软件的设计与实现.doc_第1页
第1页 / 共48页
局域网即时通讯软件的设计与实现.doc_第2页
第2页 / 共48页
局域网即时通讯软件的设计与实现.doc_第3页
第3页 / 共48页
局域网即时通讯软件的设计与实现.doc_第4页
第4页 / 共48页
局域网即时通讯软件的设计与实现.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《局域网即时通讯软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《局域网即时通讯软件的设计与实现.doc(48页珍藏版)》请在三一办公上搜索。

1、本科毕业论文局域网即时通讯软件的设计与实现Design and Implementation of LAN Instant Messaging Software 指导教师姓名、专业技术职务 学 科 专 业 论文答辩日期 学位授予单位和日期 答辩委员会主席 答辩委员会委员 摘 要即时通讯软件是利用现代的网络资源优势和技术优势,为人们进行交流和联系提供的一个平台。对于武警部队来说,一个基于局域网的即时通讯软件,不仅能极大的方便武警官兵之间的交流与沟通,而且可以利用武警部队的内部网络实现通讯,满足武警部队的保密需求。本文设计并实现了一个局域网即时通讯软件,它采用C+语言编写,使用VC 6.0作为开发

2、工具。本文介绍了即时通讯软件开发的主要技术,再通过对软件的需求分析,设计了软件的总体结构和功能模块。然后进行服务器端以及客户端的用户注册、用户登陆、即时聊天和文件传输等功能模块的实现,并进行了软件的运行测试,检验软件功能的实现情况。关键词:即时通讯软件;局域网;交流ABSTRACTInstant messaging software is a platform for people to communicate and contact with the advantage of modern network resources and technology. For the armed for

3、ces, a instant messaging software based on LAN, not only can the exchange and communication between the great convenience of police officers and soldiers, and can use the armed forces to the internal network to realize communication, meet the police forces of the confidentiality requirements.In this

4、 paper, the design and implement a instant messaging software based on LAN. It uses C+ language preparation, and uses the VC 6.0 as a developed tool. This paper introduces the main technology of instant messaging software development, and through the analysis of the needs of the software, design the

5、 overall structure and function module of the software. Then completed the server and client user registration, user login, chat, file transfer etc. And do the running of the software for test its function implementation.KEY WORDS: Instant messaging software;LAN;Communication 目 录摘 要IABSTRACTIII目 录V第

6、一章 绪 论11.1 研究背景及意义11.1.1 研究背景11.1.2 研究意义11.2 研究现状21.3 本文的主要内容和结构2第二章 软件开发的主要技术52.1 VC6.052.2 Winsock52.3 C/S模式62.4 TCP/IP协议72.5 小结8第三章 软件的需求分析93.1 需求分析93.2 运行需求分析93.3 性能需求分析93.4 数据需求分析103.5 功能需求分析103.6 小结11第四章 软件的设计134.1 软件总体结构设计134.2 软件功能模块设计144.2.1 服务器端的功能144.2.2 客户端的功能154.3 软件工作流程154.3.1 服务器端的工作流

7、程154.3.2 客户端的工作流程164.4 信息头的设计174.5 小结18第五章 软件的实现195.1 服务器端195.2 客户端215.2.1 用户注册215.2.2 用户登陆235.2.3 即时聊天265.2.4 文件传输285.3 运行测试315.4 小结34第六章 总结与展望356.1 总结356.2 展望35致 谢37参考文献39第一章 绪 论1.1 研究背景及意义1.1.1 研究背景随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式,两台计算机

8、之间进行即时通讯、发送文件等交流方式也已经成为时代的潮流。如今,越来越多的企业、公司、学校内部等都设计开发了属于自己的局域网即时通讯软件,这样既方便了工作和生活交流,又拉近了人与人之间的距离。目前基于Internet的即时通讯软件已经做的非常完美,然而基于局域网的即时通讯软件却不如人意。而在高等教育方面,网络展现出不可替代的作用。为了适应现代信息化,教学局域网1就应运而生,而教学局域网内的即时通讯能力则显得尤为重要。所以对于学校和公司内部网络等机构,局域网即时通讯软件的应用还是相当重要的。1.1.2 研究意义21世纪是信息的时代,随着互联网技术的发展,信息在传递方面也有了崭新的一面。现今即时通

9、讯软件成为信息传递最为广泛的应用工具,它发挥了即时通讯的特点,可以让用户在第一时间内进行信息的交流。经历了近几年突飞猛进的发展之后,即时通讯软件2已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。即时通讯软件的出现给人们彼此之间的沟通带来了无比的方便,人们可以通过即时通讯软件达到增进相互间的信息交流和沟通的目的,并以此加快人们的信息化建设。对于我们武警部队来说,我们具有保密的要求,所以部队内网不能与互联网相连。因此,基于局域网设计出一个操作简单、界面美观、运行稳定的即时通讯软件,满足武警官兵之间的交流与沟通,同时也有利于资源的传送,更重要的是它可以利用武警部队的内部网络实

10、现通讯,满足武警部队的保密需求。本文设计的局域网即时通讯软件主要实现用户注册、用户登陆、即时聊天以及文件传输等功能,比如在各寝室、办公室、班级、楼层内部人员可以通过这个即时通讯软件在局域网内进行交流,而且它不会出现现有聊天工具的窗口抖动或者闪屏等功能给用户造成的不良影响,因此能在很大程度上方便武警官兵的日常生活和工作。1.2 研究现状1996年11月ICQ在全球发布,拉开了互联网IM(Instant Messenger,即时通讯)应用的序幕。就是这样一款小软件在短短数年时间里发展出一个巨大的IM产业。时至今日,即时通讯软件早已成为最热门的网络应用之一,国内外的即时通讯软件举不胜数。目前基于In

11、ternet的即时通讯软件3的开发技术已经非常成熟,比如国内著名的QQ、微信、飞信之内的即时通讯软件都能满足绝大多数人的需求,还有国外流行的的ICQ、MSN都推出了强大的功能。这些基于Internet的即时通讯软件不仅实现了即时聊天、文件传输等功能,而且还能够实现网络即时视频、语音聊天功能。它们的功能正在不断扩充,使其更加人性化,满足人们更多的需求。而基于局域网的即时通讯软件的核心技术其实与基于Internet的即时通讯软件的设计技术4是一样的,只是规模较小。在局域网内,即时通讯软件的设计比在Internet中设计更为简单。因为Internet是一个非常巨大的网络,结构非常复杂,碰到的状况比在

12、局域网中要多,而局域网中的事情就简单的多了,所以局域网即时通讯软件在实现即时通信时就相对容易些了。1.3 本文的主要内容和结构本文设计并实现了一个局域网即时通讯软件,它的开发工具为Microsoft Visual C+ 6.0。文章从即时通讯软件的研究背景及意义、研究现状、开发的主要技术、需求分析以及设计和实现等方面对其进行了详细介绍,主要完成用户注册、用户登陆、即时聊天和文件传输等工作。本文的结构如下:第一章绪论。介绍了即时通讯软件的研究背景和研究意义,分析了即时通讯软件的研究现状,并对本文的主要内容和结构进行了介绍。第二章软件开发的主要技术。先简单介绍了Microsoft Visual C

13、+ 6.0和Windows Sockets,再对C/S模式进行了介绍,最后介绍了TCP/IP协议。第三章软件的需求分析。对局域网即时通讯软件的总体需求、运行需求、性能需求、数据需求以及功能需求等方面进行了具体的分析。第四章软件的设计。首先介绍采用C/S模式设计局域网即时通讯软件,然后对软件的总体结构和功能模块进行了分析和设计,再分析了软件客户端和服务器端的工作流程,最后对即时通讯软件在信息传输过程中使用的信息头进行了介绍。第五章软件的实现。主要完成即时通讯软件的服务器端以及客户端的用户注册、用户登陆、即时聊天、文件传输等功能模块的实现,最后对即时通讯软件进行了运行测试,通过对本次设计的局域网即

14、时通讯软件的运行测试,检验即时通讯软件功能的实现情况,并针对其不足做好下一步改进的准备。第六章总结与展望。总结了本文的主要工作以及存在的不足,并对即时通讯软件的未来发展进行了展望,主要是增加即时通讯软件的功能和提高即时通讯软件的安全性,从而能更好地满足武警部队的需求。第二章 软件开发的主要技术2.1 VC6.0本设计选用的开发工具是目前较流行的可视化和采用面向对象技术5的Microsoft Visual C+ 6.0(简称VC6.0),它是当今被广泛使用的可视化编程环境之一,是一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和

15、设计思想,采用了可重复利用的完整的面向对象程序语言6。VC6.0可在Windows XP或Windows NT环境下运行,其开发系统增加了全面集成的基于Windows的开发工具以及一个基于传统C/C+开发过程的“可视化”用户界面。VC6.0中的Microsoft基类7(MFC,即Microsoft Foundation Class)库是一系列C+类,其中封装着为Microsoft Windows操作系统系列编写应用程序的各种功能 。在有关套接字方面,Visual C+ 6.0对原来的Windows Sockets库函数进行了一系列封装8,继而产生了CSocket 、CSocketFile等类,

16、它们封装着有关Socket的各种功能。2.2 WinsockWindows Sockets(套接字)是支持多种协议并且得到广泛应用的网络编程接口9,也是Windows下网络编程的规范。它其实可以说是一个通信端点,借助于它,用户所开发的Socket应用程序,可以通过网络与其它Socket应用程序进行通信10。它主要由开发组件和运行组件两部分组成,开发组件是Windows Sockets实现文档、应用程序接口和一些头文件;运行组件是Windows Sockets 应用程序接口的动态链接库(WINSOCK.DLL)。Windows Sockets从Berkeley Sockets扩展而来,其在继承B

17、erkeley Sockets的基础上,又进行了新的扩充。这些扩充主要是提供了一些异步函数11,并增加了符合Windows消息驱动特性的网络事件异步选择机制。这些扩充有利于应用程序开发者编制符合Windows编程模式的软件,它使在Windows下开发高性能的网络通信程序成为可能12。2.3 C/S模式本文设计的基于局域网的聊天工具采用C/S模式,所有客户端之间通讯的信息都要通过服务器端转发。C/S模式,是Client/Server的简称,就是指客户机和服务器模式。客户机是指运行用户请求程序,并将这些请求传送到服务器的软件成分。服务器有两个基本含义:一是在网络环境中提供共享服务的硬件;二是为其它

18、软件成分提供普通化功能服务的软件成分,即它是用来管理数据资源并进行数据库处理的计算机。物理上的客户机是一种单用户站,服务器一般是用以提供共享资源的多用户处理机13,C/S模式可以由使用不同操作系统的计算机构成。这种模式将功能很强的数据库管理系统、工具和应用软件等信息资源散布在多个客户机和服务器上,将应用逻辑分割成客户机和服务器两部分。当需要执行一个应用时,客户机服务器模式将这个单一的应用分解为可在网络上协调操作的独立组块,并将这些独立组块分派到客户机和服务器上。客户机一般负责与用户交互,承担绝大部分显示和逻辑处理工作,服务器则负责存储和管理信息、资源来响应客户机的请求。图2-1 C/S模式图如

19、图2-1所示,用户在客户机端进行操作,然后由客户机程序处理这些操作,当要存取数据库中的数据时,客户机程序就会发送请求给后台数据库服务器,由后台数据库服务器执行这些请求并将结果返回,最后通过客户机处理返回的结果并输出结果以响应用户的操作。2.4 TCP/IP协议本设计采用TCP/IP协议用于客户端和服务器端之间的网络通信,Windows XP和Windows NT操作系统都带有该协议。但是,所有的网络通信应用程序并不能直接与TCP/IP核心打交道,而是与网络应用编程界面Windows Sockets API打交道,而Windows Sockets API则可直接与TCP/IP核心进行沟通。TCP

20、/IP核心协议连同网络物理介质(如网卡)一起,都是提供网络应用程序间相互通信的设施14。TCP/IP协议是指传输控制协议/因特网互联协议,也叫网络通讯协议。TCP/IP协议定义了电子设备如何连入网络15,以及数据如何在它们之间传输的标准。TCP/IP协议其实是一个协议集,它包括了许多协议,这些协议的作用就是使计算机之间可以进行信息交换16。根据OSI网络标准定义,网络由物理层,数据链路层,网络层,传输层,会话层,表示层和应用层7层组成。而在实际应用中,TCP/IP协议将网络功能划分为四层结构,它们自下而上分别为网络接口层、网络层、传输层和应用层,其结构如图2-2所示:图2-2 网络四层结构图传

21、输层是四层结构中最关键的一层,也是唯一负责总体数据传输和数据控制的一层。它提供端到端的传输服务,对网络层提供可靠的目的地信息。传输层中两个主要的协议是TCP协议和UDP协议。TCP协议能够提供可靠的,全双工的网络通信服务,具有确认数据流控制、多路复用和数据同步等功能,很适合高质量数据的传输。它还为保证数据传输的可靠性做了大量工作,是目前应用最为广泛的网络传输协议之一。UDP协议,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。它是最简单的,面向无连接的协议。它不保证分组的先后顺序,不进行分组出错的恢复与重传,因此保证了传输的可靠性,但是不保证服务质量。相对于TCP协议来说

22、,UDP协议减少了确认、同步等操作,节省了很大的网络开销,它能够提供高传输效率的数据报服务,能够实现数据的实时性传输,在数据的实时传输中应用广泛。2.5 小结本章主要介绍了局域网即时通讯软件采用的开发工具Microsoft Visual C+ 6.0以及应用的网络编程接口Windows Sockets,然后对软件采用的C/S模式和TCP/IP协议进行介绍,通过对软件开发需要用到的主要技术的介绍,能更好地掌握软件开发的相关知识,有利于软件的设计和实现。第三章 软件的需求分析本章主要从局域网即时通讯软件的总体需求、运行需求、性能需求、数据需求以及功能需求等四个方面对即时通讯软件进行详细的需求分析,

23、从而明确本文的设计目标,有利于软件的顺利完成。3.1 需求分析本文设计的即时通讯软件是基于局域网实现的,而实际上局域网即时通讯软件可以说是互联网即时通讯软件的一个小规模版本。不过在局域网内,即时通讯软件的设计比在互联网中要简单一些,因为互联网是一个非常巨大的网络,结构非常复杂,碰到的状况比在局域网中要多;而局域网的网络覆盖面积小、用户量少、配置容易、连接速率高,所以局域网即时通讯软件的设计相对互联网上的即时通讯软件来说就相对容易些了。而由于在局域网上的即时通讯软件一般都是依靠服务器提供服务器端的连接响应,用户则通过客户端上专用的应用程序连接到服务器上,最后实现与登陆在同一服务器上的用户进行即时

24、聊天或者传输文件。还有用户之间的通信过程都是先通过客户端与服务器端建立连接,所以服务器端要能及时地接收、处理和转发客户端发送过来的信息。因此,即时通讯软件要在局域网环境下,实现服务器端和客户端两部分程序。3.2 运行需求分析1.用户界面。局域网即时通讯软件较小,启动速度快,而且无启动界面。启动后的应用界面简单明了,用户能快速上手使用。2.故障处理。在遇到可预知的故障与情况时,局域网即时通讯软件能提示用户并自动退出;在遇到不可预知的故障时能安全退出。3.局域网即时通讯软件运行所需环境的配置要求不能太高,能够在一般的计算机上运行。3.3 性能需求分析1.稳定性高,能在由于系统问题或其它原因产生错误

25、后,做出相对应处理,在出现不可知的错误以后,可以尽量安全的退出即时通讯软件。在即时通讯软件的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。2.操作简单,即时通讯软件简单易懂,容易上手使用。即时通讯软件的界面比较简单,模拟现有即时通讯软件的界面,使用户能很容易看懂并使用。3.功能设计模块化,即时通讯软件不同的模块实现不同的功能,使得它易于以后的维护与扩展,在以后可以更好的完善本即时通讯软件的功能,更方便于在工作中的应用。3.4 数据需求分析1.客户端之间的通讯信息在显示时要格式化,让用户可以清晰的看到自己发送和接收的信息

26、。2.客户端将在显示在线用户列表信息时要进行格式化,便于查看在线用户的ID和姓名。3.对于局域网内的用户信息需要用具体的数据信息来表示,而且服务器需要一个保存所有用户信息的文本文档,其基本内容应包括用户ID、账号以及密码等。3.5 功能需求分析1.用户注册:用户在客户端填写自己的账号、密码、姓名等信息,客户端会将用户的注册信息打包发送给服务器端。服务器端判断用户的注册信息是否符合注册条件,如果符合就将信息保存下来,并将注册成功的信息返回给客户端;如果不符合,则将注册失败的信息发送给客户端。2.用户登陆:用户在客户端的登陆界面输入自己的账号和密码,点击登陆后,客户端会将用户的登陆信息发送给服务器

27、进行判断。服务器端如果在储存用户信息的文本文档中找到与登陆信息符合的账号和密码,用户便能成功登陆客户端并可以进行通讯;如果找不到符合的账号和密码,则将登陆失败的信息发送给客户端,客户端收到信息后提示用户的账号密码有误。3.查看在线用户:用户成功登陆客户端后,服务器端会将其他在线用户的信息发送给该用户登陆的客户端,然后该用户就可在聊天的主页面看到其他在线用户的ID以及姓名。4.即时聊天:用户可以在即时通讯软件的主界面选择任意一个在线用户发送消息,服务器端收到后能把消息转发给指定的用户。 5.文件传输:用户在与其它在线用户聊天时,可以发送文件给聊天对象,接收方确定接收后,服务器端将文件转发给接收方

28、。如果接收方拒绝接收文件,服务器端将拒绝接收的信息发送给发送方的客户端。3.6 小结本章主要通过分析局域网即时通讯软件的各类需求,确定和开发目的相一致的设计方向。本设计需要在尽量满足软件的运行需求、性能需求、数据需求的前提,实现软件的用户注册、用户登陆、即时聊天、文件传输等功能,并且能准确快速完成即时通讯软件的开发任务。经过本需求分析,可以合理安排设计进度,保证本设计的顺利完成。第四章 软件的设计在局域网上的即时通讯软件一般都是依靠服务器提供服务器端的连接响应,用户通过客户端上专用的应用程序登陆到服务器上,最后实现与登陆在同一服务器上的用户进行即时聊天或者传输文件。而用户之间的通信过程都是先通

29、过客户端与服务器端建立连接,所以服务器端要能及时地接收、处理和转发客户端发送过来的信息。因此即时通讯软件要在局域网环境下,实现服务器端和客户端两部分程序。4.1 软件总体结构设计本文设计的局域网即时通讯软件采用C/S模式,它包含客户端和服务器端,客户端和服务器端之间通过Socket进行连接通信9。采用C/S模式的好处就是可以将即时通讯软件分为两个独立的部分进行开发设计,便于软件开发。即时通讯软件的总体结构如图4-1所示:图4-1 即时通讯软件总体结构图客户端的主要作用是连接到服务器端后,能给用户提供服务并将用户的服务请求发送给服务器,然后能及时地接收到服务器端的回馈信息并及时处理信息,最后将处

30、理结果反映给用户。服务器端的主要作用是与客户端建立连接后,能及时接收、处理和转发客户端发送过来的信息。4.2 软件功能模块设计本文设计的局域网即时通讯软件采用一个服务器端对应多个客户端的C/S模式,客户端和服务器端的功能都采用模块化设计,从而使得软件的功能结构清晰,有利于设计、实现以及最终的使用。即时通讯软件的功能结构如图4-2所示:图4-2 即时通讯软件功能结构图4.2.1 服务器端的功能服务器端能够正确地建立与客户端的连接也能够断开,能及时接收、处理和转发客户端发送过来的信息,还能及时地通知在线用户当前好友在线状况。服务器端的主要功能有:1.储存用户信息:服务器端能接收客户端发送过来的用户

31、注册时输入的账号、密码、姓名等信息,并将这些信息记录在服务器端的文本文档中。2.处理信息:用户在客户端进行注册(登陆),客户端会将用户的注册(登陆)信息发送给服务器,服务器端会判断这些信息是否正确,并将判断结果发送给客户端。3.转发信息:服务器端能够接收客户端发送过来的聊天内容或文件并转发给指定的用户。4.2.2 客户端的功能客户端连接到服务器端后,为用户提供各种服务,然后将服务请求发送给服务器端,并能及时地接收到服务器端的数据并处理数据,再将处理结果反映给用户。客户端的功能模块主要有:1.用户注册:用于新用户注册账号,使其获得合法身份登陆客户端。2.用户登陆:用户在登陆界面输入正确的账号和密

32、码后可登陆客户端。3.即时聊天:用于在线用户之间的即时聊天。4.文件传输:用于在线用户之间的文件传输。 4.3 软件工作流程即时通讯软件开始服务后,用户在客户端发送的请求都要先发送给服务器端,服务器端接收到客户端的请求后根据具体的请求内容进行处理。4.3.1 服务器端的工作流程服务器端的工作流程如图4-3所示:图4-3 服务器端工作流程图服务器端开启服务后并连接在线客户端后,服务器端便开始等待客户端的请求。当用户在客户端登陆界面输入账号和密码后,客户端会向服务器发出用户连接请求,服务器会对登陆信息进行审核,审核成功后将客户端添加到连接链表10。当用户在客户端发送信息时,信息都要先发送给服务器,

33、服务器接收到信息后转发指定的客户端。当客户端关闭后,服务器会在连接链表中将它删掉,在线人员列表就删除该用户的用户名。4.3.2 客户端的工作流程客户端工作流程如图4-4所示:图4-4 客户端工作流程图新用户使用即时通讯软件时,首先要在客户端进行注册,客户端将用户的注册信息发送给服务器端,服务器端审核成功后会将新用户的账号、密码及姓名等保存在一个文本文档中,然后将注册成功的信息发送给客户端,客户端接收到信息后提示用户注册成功。用户登陆客户端时,需要通过服务器端验证账号和密码。服务器端如果在保存用户信息的文本文档中找到匹配的信息,便会把登陆成功的信息发送给客户端,用户就能成功登陆到通讯的主页面并能

34、选择在线用户进行通讯;如果没有找到匹配的信息,服务器会给客户端发送登陆失败的信息,要求用户重新输入账号和密码。用户登陆客户端后,只能给在线用户发送信息,而且退出客户端后,不能再收到任何信息。当客户端主动退出时,用于服务器连接的套接字随即中断回收,而服务器可以继续为其他在线用户提供服务。当服务器关闭后,连接线程中断,客户端随即停止工作。4.4 信息头的设计信息头是每个信息都带有的信息头信息,它由若干个字段组成,这些字段都是在设计程序时根据具体的应用需求进行设计的9。由于即时通讯软件在进行通讯时,客户端和服务器端之间会不断地进行信息交互。而在信息交互的过程中,客户端和服务器端需要清楚地分辨收到的信

35、息的用途,保证程序能够准确、快速的完成工作,因此要对这些信息的信息头进行设计。本文在设计时,在客户端和服务器端发送的每一条信息前添加6位信息头,信息头的格式为“X:Y:Z:”,以下为X的含义:X=1:服务器端收到表示是登陆信息,客户端收到表示是登陆成功的信息X=2:新用户上线的消息和在线用户信息的消息X=3:个人聊天信息X=4:退出消息X=5:服务器收到表示是注册消息,客户端收到表示是注册成功的消息X=6:登陆成功消息X=7:登陆失败消息Y表示发送该条信息的用户的编号。这样,用户在接收信息时才知道是谁发来的。Z表示接收该条信息的用户的编号。这样,服务器端在转发的时候才知道把这条信息发送给谁。在

36、传输文件的时候,文件头更改为“X:Y:ZA”,X、Y、Z的意义不变,只是把最后一个“:”改为了A,以下为A所表示的意义:A=H:请求发送文件的消息A=D:拒绝接收文件的消息A=R:同意接收文件的消息4.5 小结本章主要进行即时通讯软件的设计。首先采用C/S模式设计局域网即时通讯软件,然后对软件的总体结构和功能模块进行了分析和设计,再分析了软件客户端和服务器端的工作流程,最后对即时通讯软件在信息传输过程中使用的信息头进行了介绍。通过以上这些分析和设计,有利于理清即时通讯软件的设计思路,便于软件的最终实现。第五章 软件的实现本章主要对即时通讯软件的功能进行实现,包括服务器端储存用户信息、转发消息和

37、文件的实现,以及客户端的用户注册、用户登陆、即时聊天、文件传输等功能模块的实现。5.1 服务器端本文设计的局域网即时通讯软件采用一个服务器端对应多个客户端的C/S模式,服务器端的作用是能够正确地建立与客户端的连接也能够断开,能及时接收、处理和转发客户端发送过来的信息,并能及时地通知在线用户当前好友在线状况。服务器端工作流程图5-1 服务器端工作流程图如图5-1所示,服务器端开启服务并连接到客户端后,服务器端便开始等待客户端请求。当服务器端接收到客户端请求后,根据客户端的具体请求进行处理。若服务器端接收到的是用户的注册信息或登陆信息,服务器端审核这些信息后,将审核结果发送给客户端;若服务器端接收

38、的是用户即时聊天或文件传输的请求,服务器端将转发用户的请求给指定用户。服务器端关键部分代码因为本设计在实现通讯的过程中,所有信息都要通过服务器端转发,所以服务器端必须要存储所有在线用户的信息以及IP地址。因此,本设计使用一个USERDATA结构体来存储,这样读取的时候既方便又直接。使用USERDATA结构体存储用户信息的代码如下:struct USERDATASOCKADDR_IN addrcli;CString nameBuf;上述代码中,addrcli用于存储用户的IP地址,nameBuf用于存储用户的姓名。当有用户登陆客户端时,服务器端就会将该用户的IP地址和名字存储在USERDATA数

39、组中,而数组下标就是服务器端为每个用户分配的编号,所以当服务器端转发消息时,可以通过用户编号,轻松找到要接收信息的用户地址。以下是服务器端转发用户即时聊天消息的关键代码:Int num=recvBuf4-48;sendto(sock,recvBuf,sizeof(recvBuf)+1,0,(SOCKADDR*)&userDatanum.addrcli,sizeof(SOCKADDR);以下是服务器端转发用户传输的文件的关键代码:if(recvBuf0=3)int num=recvBuf4-48;sendto(sock,recvBuf,sizeof(recvBuf)+1,0,(SOCKADDR*

40、)&userDatanum.addrcli,sizeof(SOCKADDR);5.2 客户端客户端连接到服务器端后,为用户提供各种服务,然后将服务请求发送给服务器端,并能及时地接收到服务器端的数据并处理数据,再将处理结果反映给用户。客户端主要提供用户注册、用户登陆、即时聊天以及文件传输等功能。5.2.1 用户注册局域网即时通讯软件的用户注册模块是它的基础模块,用户只有注册成功后才能登陆即时通讯软件进行即时通讯。用户注册流程图5-2 用户注册流程图用户注册流程如图5-2所示。用户在客户端点击注册按钮后,会弹出一个注册界面,如图5-3所示。新用户要根据注册的要求在注册界面输入自己的账号、密码(两次

41、)以及姓名。具体要求是:一、账号和密码必须是数字,姓名必须是中文。二、密码长度在6-22位数字之间,而且两次输入的密码必须相同。三、任何一项信息栏都不能为空。图5-3 用户注册界面图用户填写完账号、密码和姓名后,客户端会判断这些信息是否符合上诉要求,如果不符上述要求,则不能注册;如果符合上述要求,客户端就会将这些信息发送给服务器端。服务器端收到用户的注册信息后会对注册信息进行审核,服务器端首先从收到的信息中提取出注册的账号,然后打开存储用户信息的文本文档中,并对文档中所有的账号进行遍历。如果服务器在文本文档中找到相同的账号,则给客户端返回注册失败的信息;如果没有找到该账号,说明用户输入的信息符

42、合注册条件,并将该用户的相关信息记录在一个名为userMessage的文本文档中,然后给客户端返回注册成功的信息。客户端注册的关键代码:m_TorR=TRUE;m_Message=7:0:0:;m_Message=m_Message+id+.+psw1+.+name;sendto(m_sockCli,message,message.GetLength()+1,0,(SOCKADDR*)&addrSrv,sizeof(addrSrv);int rerecv;char recvBuf50;int len=sizeof(SOCKADDR);SOCKADDR_IN addrser;rerecv=rec

43、vfrom(m_sockCli,recvBuf,300,0,(SOCKADDR*)&addrser,&len);用户注册成功图5-4 用户注册成功界面图如图5-4所示,当用户注册成功后,客户端会弹出一个“注册成功”的提示框,然后用户在客户端登陆界面输入注册时输入的账号和密码,就可以登陆客户端。5.2.2 用户登陆用户登陆流程图5-5 用户登陆流程图用户登陆的流程如图5-5所示。用户注册成功后,在客户端登陆界面输入注册时输入的账号和密码,就可以登陆客户端。客户端登陆界面如图5-6所示:图5-6 客户端登陆界面图登陆界面中有两个编辑框,分别用来填写账号和密码,用户填写完账号和密码后,点击“登陆”,

44、客户端便会将用户的登陆信息发送给服务器端。服务器端收到客户端发送过来的信息后,便会将账号和密码提取出来,然后打开存储用户信息的文本文档,在文本文档中一个个查找已经存在的账号。若没有查找到与其对应的账号,则给客户端发去登陆失败的信息,若查找到对应的账号,用户便能成功登陆。用户登陆的关键代码:CString sendBuf(0:0:0:);sendBuf=sendBuf+ID+psw;sendto(m_sockCli,sendBuf,sendBuf.GetLength()+1,0,(SOCKADDR*)&addrSrv,sizeof(addrSrv);char recvBuf100;SOCKADD

45、R_IN addrser;int rerecv;int len=sizeof(SOCKADDR);rerecv=recvfrom(m_sockCli,recvBuf,300,0,(SOCKADDR*)&addrser,&len); if(recvBuf0=9)MessageBox(账户或密码错误);return;if(recvBuf0=1)userId=recvBuf4;CCHATROOM room;CString recvname=recvBuf;name=recvname.Right(recvname.GetLength()-6);room.name=name;room.m_sockcli

46、=m_sockCli;room.UserId=userId;room.addrSrv=addrSrv;ShowWindow(SW_HIDE);room.DoModal();return;用户登陆成功用户成功登陆客户端后,进入到客户端的通讯主页面,如图5-7所示:图5-7 客户端通讯主页面图如图5-7所示,通讯主页面的上方显示用户的姓名,中间是一个列表框,列表框分为两列,第一列显示在线用户的ID序号,第二列显示用户姓名。5.2.3 即时聊天即时聊天是本设计最主要的功能,用户成功登陆客户端后,在通讯的主界面上选择在线用户便可开始聊天。即时聊天流程图5-8 即时聊天流程图即时聊天的流程如图5-8所示,用户成功登陆客户端并进入

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号