




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着计算机和网络技术的普及,网络聊天工具以其便捷性、实时性和低费用受到广大用户的青睐。在企业内部,既要满足员工之间的交流,又要保证安全,企业及时通是企业的不二选择。本软件分客户端模块和服务器模块实现相应的功能。客户端用于用户登录,并执行查看和聊天的操作。服务器主要是管理所有信息,及服务器的启动与停止。本软件基于C+开发环境,参照腾讯QQ界面,用MFC来设计。本软件后台采用一个数据库来存储相应信息,并在程序中使数据库与软件使用ODBC相互连接。在通信方面,用户与服务器通信使用TCP协议,确保通信的准确性;用户与用户通信使用UDP协议,确保通信的及时性。通过软件设计,客户端实现用户登录、聊天、用户信息管理等功能。服务器实现管理员登录,启动、关闭网络服务,用户上下线通知的显示,维护数据库信息,维护在线用户列表。经测试客户端和服务器运行正常,功能正常 关键词:即时通;多线程;Oracle;套接字编程AbstractWith the popularization of computer and network technology, network chat tool with its convenient, real-time and low cost by the majority of the customers. Within the enterprise, it is necessary to meet the communication between employees, but also to ensure the safety of the enterprise in a timely manner through the choice.The software points the client module and server module to achieve the corresponding functions. Client for user login, and perform the operation to view and chat. The server is mainly to manage all the information and server start and stop.The software is based on C + + development environment, with reference to the interface of Tencent QQ, to design using MFC.The background of this software uses a database to store the appropriate information, and program manipulation database software using ODBC to connect with each other. Communications, users communicate with the server using the TCP protocol, to ensure the accuracy of the communication; users communicate with the user using the UDP protocol to ensure the timeliness of communication.Software design, the client achieves the user login, chat, user information management functions. Server implements administrator login, start, shut down the network service user offline notification on the display and maintenance of the database information, maintain a list of online users. By the test ,client and server operat normally and work properly.Key words:Instant messaging; Line; Oracle; socket programming目 录1 绪 论21.1研究背景21.2选题意义21.3国内外发展概况21.3.1国外概况21.3.2国内概况31.4可行性分析41.4.1 技术可行性分析41.4.2经济可行性分析41.4.3运行可行性分析42企业即时通的需求分析52.1 概述52.2系统功能模块需求分析52.2.1客户端的功能需求分析62.2.2服务器端的功能需求分析72.2.3非功能需求分析82.3数据库需求83. 企业即时通的设计113.1 系统流程113.2 系统环境配置123.2.1 硬件要求123.2.2 软件要求123.3 运行设计133.3.1 运行模块组合133.3.2 运行控制163.4 系统数据结构设计163.4.1 数据表结构设计163.4.2 数据结构与程序的关系193.5 系统报错处理设计203.5.1 报错信息203.5.2 补救措施203.5.3 系统维护设计204企业即时通的实现214.1数据库的实现214.2客户端的实现214.2.1用户登录功能214.2.2聊天功能234.2.3查询功能254.3服务器端的实现274.3.1管理员登录274.3.2启动服务器294.3.3停止服务器294.3.4用户上线下线显示304.3.5维护用户、部门和公司信息314.4树形控件的实现324.4.1树形控件的建立324.4.2树形控件的维护345企业即时通的测试355.1测试目的355.2测试环境355.3测试方案355.4测试项目与内容365.5测试用例365.5.1客户端登录功能测试365.5.2客户端聊天功能测试375.5.3服务器端信息维护功能测试386 结 论39谢 辞40参考文献41附录42附录142附录245附录3501 绪 论1.1 研究背景随着我国第一款即时通讯软件OICQ的问世,并在短时间内获得了相当高的市场认知度,因此促使了即时通讯软件领域的高速发展,使其成为互联网领域的一个新生的宠儿。当前大多数的国内大型互联网企业均看准了此商业势态的发展方向,都想在此领域享有一席之地。调查数据显示,互联网用户的快速增长带动着即时通讯用户也迅速增长,即时通讯依然是一个炙手可热的大“肥肉”。按此发展时态来看,毫无疑问,即时通讯将继网络广告、收费邮箱、短信、网络游戏之后成为互联网的又一巨大财富之源。即时通讯不同于电子邮件之处在于它的交流是即时的。大部分的即时通讯服务提供了presence awareness的特性显示联络人名单,联络人是否在线上与能否与联络人交谈。目前最为流行的即时通讯聊天工具是MSN或QQ。本系统是实现企业即时通,通过本软件可以实现公司内部员工之间的即时通讯,而避免了使用外部网络与对其他网络通讯工具的依赖。1.2 选题意义选择企业即时通的设计与实现,最重要的是企业即时通是社会普遍需求。企业即时通采用C/S模式开发,使任意两台计算机互为服务器,减少了对服务器的依赖性,弱化了服务器的作用以ORACLE为数据库管理用户信息,采用C/C+语言开发。企业即时通作为公司内部通讯软件,其功能需求实现基本的用户即时通讯、用户基本信息管理、部门基本信息管理、即时通讯信息的储存等功能。选择该题目的重大意义还在于它是当下使用最为频繁,且是使用人数很多的软件之一,尤其对于企业内部来说。511.3 国内外发展概况1.3.1 国外概况目前国外比较盛行的即时聊天工具ICQ和MSN,ICQ是由一家以色列公司开发出来的免费软件,中文名称目前可以称之为“网络呼叫器”,它在全球拥有超过4000万的用户。其主要的功能为让用户知道网络上的朋友现在有没有上线,上线后可以互送Messages(消息)交谈等等,比电子邮件更具即时性。MSN是微软开发的一款通讯工具,用最简单的方式向使用者提供强大的即时消息支持,并同时兼顾了Microsoft Outlook Express(R) 和MSN Hotmail(R),使得它们变得更简单易用。MSN作为一种联络通讯工具,已经越来越得到普及了,特别是上班族。MSN 使用户间的联机交谈变得更加轻松愉快,可了解谁在联机以及查看用户何时联机并与其交换即时消息。用户间可以进行单独的聊天,或者在同一个对话窗口中与多人进行即时通讯。可以进行全球电话呼叫以非常低的费用呼叫世界的任何地方。用户可以选择所要使用的电话服务提供商,从服务提供商的列表中选择最适合的提供商。用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各地的朋友进行交谈。用户可以使用 MSN与他人交换各种感兴趣的东西,也可以监视新的电子邮件并查看用户有多少新的电子邮件。除ICQ和MSN之外,在即时通讯领域中还有另外一些分羹者,其中包括苹果计算机公司(Apple Inc.)的iChat和谷歌(Google)的Google Talk。iChat预装在苹果机上;而Google Talk跟即时通讯领先者相比还很初级。还有些特殊类型的实时通讯,如skypeLimited和SightSpeed Inc.的产品,它们分别擅长电话和视频通讯,而且也支持文本通讯。目前,微软、AOL、Yahoo等重要即时通信提供商随着移动互联网的发展都提供通过手机接入互联网即时通信的业务来向移动化扩张,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。1.3.2 国内概况自1998年我国第一款即时通讯工具OICQ面世以来,即时通讯的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通讯不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。是一种终端连网即时通讯网络的服务。即时通讯不同于e-mail在于它的交谈是即时的。大部分的即时通讯服务提供了状态信息的特性显示联络人名单,联络人是否在在线与能否与联络人交谈。即时通讯可分为手机即时通讯和网站即时通讯两类。手机即时通讯代表是手机短信或彩信,网站即时通讯代表:YY语音、QQ、MSN、百度hi、新浪UC、阿里旺旺、IS、网易泡泡、网易CC、盛大ET、中国移动飞信、企业飞信、COCO等应用形式。最初由AOL、微软、雅虎等独立于电信运营商的即时通信服务商提供的即时通信的日益强大的软件挑战下,以中国移动飞信为代表,飞信是中国移动推出的一项业务,可以实现即时消息、短信、语音、GPRS等多种通信方式,保证用户永不离线。实现无缝链接的多端信息接收,让您随时随地都可与好友保持畅快有效的沟通。但由于进入市场较晚,其用户规模和品牌知名度还比不上原有的即时通信服务提供商。国内的即时通讯由于发展相对国外算是比较晚,但是将会成为继电子邮件、万维网之后,互联网上最具竞争力的应用。即时通讯低廉高效的性能是传统电话、E-mail等通讯方式望尘莫及的,例如企业的即时通信系统可以随时查看各部门在线人员、沟通各分支机构、即时传输文件、进行远程视频会议、群发手机短信等。就目前的状况来看,即时通信已成为继安全软件、ERP软件后又一企业必备的工具。 目前许多的电信运营商都竭力的介入即时通讯这个快速发展的领域,因为越来越多的用户也转向了即时通讯应用,足以说明即时通讯领域的发展前景。1.4 可行性分析1.4.1 技术可行性分析从目前市场上的数据库来看主要有SQL Server、Oracle、MySql、Access等,对于企业及时通我选择的是Oracle数据库。C+无疑是开发图形界面的最佳选择,丰富的类库提供了足够的控件供开发人员使用,使得界面设计更是灵活多变,能够设计出更多、更好的用户界面。在C+与数据库连接方面,使用ODBC可以很容易的将SQL语句传到任何关系型数据库中,C+与ODBC的结合,使得程序员可以只写一次数据库应用软件后就可以在任何一种数据库系统上运行。由于C+语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点,因此它是数据库应用的一个极好的基础语言。ODBC又实现C+应用程序与各种不同数据库的对话,扩充了C+应用程序的应用范围。1.4.2 经济可行性分析由于本系统逻辑比较简单,开发周期较短,因此成本不高。本系统属于多用户即时聊天软件。通信传输效率较高,系统界面人性化,用户可以很方便的使用,大大节省了人们在时间耗费上的问题。1.4.3 运行可行性分析目前市面上计算机的最低配置为双核CPU加1G内存,而本系统实现的软件占用资源最多不过几十兆,所有计算机都能提供本系统需要的硬件环境。软件环境方面,目前主流的WindowsXP以及Windows7系统对软件都具有极强的兼容性,软件很容易在的操作系统平台上运行。本系统界面美观,操作简单,只要用户会汉语和懂得基本的计算机操作就可以自如的使用本系统。通过本系统,可以方便地进行网络即时沟通和交流。2 企业即时通的需求分析2.1 概述伴随着计算机通讯技术的不断更新提升,类似于QQ的局域网聊天工具得到了飞速的发展。它不用连接因特网,直接在局域网内实现信息的发送。它主要适用于中小型的企业内部通讯,可以大大的提高工作得效率,是现代企业不可缺少的辅助工具。本系统其具备操作简易方便,学习起来比较容易上手等大众型特点,只需自己注册一个属于自己的账号就可以使用。2.2 系统功能模块需求分析当前绝大多数的即时通信软件都是基于客户端、服务器端模式的,用户在使用之前首先要连接服务器验证用户的用户名和密码,然后才能获取好友列表进行进一步的通信。这种模式可以保护用户的合法权益不被侵害,并且能保证用户的确定性。即时通讯软件系统是面向用户与用户的,系统客户端应该具备一个人性化的界面,使用户之间的信息交流更和谐。本系统的开发初衷是为了使小型办公企业内部的信息交流更加方便快捷,所以信息的即时通讯放在了首位,因为不需要外部网络的介入,因此信息安全方面无需考虑太多。管理员和普通用户如图2-1和2-2所示:图 2-1管理员用例图图 2-2普通用户用例图2.2.1 客户端的功能需求分析客户端的功能可以根据现有的即时通讯聊天工具得出。主要有以下几个基本功能:(1) 客户端登录:由于在企业中,一些添加、删除用户账号信息都由管理员来进行操作,无需使用客户端的员工来操作,服务器就把新的用户名和经过散列函数计算后的密码保存入数据库;每个员工都能得到系统管理员为其分配的一个账号,员工只需要使用系统管理员所分配的账号和密码即可登录;用户在登录时服务器通过验证用户提供账号、密码与数据库是否匹配,反馈给客户端,做出登录是否成功判断,并转入确定是否转入聊天界面。(2)用户信息维护:用户登录后,进入到聊天界面中,可以看到所有在线的用户,用户可以通过界面进行修改自己的部分个人信息,将用户修改后的基本信息及更新请求发送至服务器,服务器收到更新用户信息的请求,将数据库中的数据更新,然后返回提示信息。由于公司内部的关系,不允许任何员工将其他员工从自己的列表中删除,这是公司不允许的。(3) 聊天信息的收发:用户通过聊天界面和其他的用户进行即时地聊天。(4)维护聊天记录:显示聊天历史记录,清除聊天历史记录,将聊天记录导出文件。2.2.2 服务器端的功能需求分析服务器开始运行之后,需要先启动服务才能接收来自不同客户端的各种信息并分类进行处理然后再向客户端返回处理的结果信息。服务器端在需要的时候还要向各个客户端发布系统消息,并在最后关闭服务。按照以上的简单分析,可以确认服务器端至少需要完成以下的几个功能:(1)服务器启动服务:自动设置服务器端套接字,启动服务后监听客户端的请求。(2) 服务器关闭服务: 向客户端发送消息,关闭服务器端的套接字,断开与客户端的连接。(3)服务器接收、处理登录信息:服务器接收到客户端的信息,判断是登录信息后,核对用户名是否存在以及用户名与密码是否匹配,如果所有信息正确无误,那么服务器将向客户端反馈登录成功的提示,当客户端进入聊天界面时将已在线用户名单发给该用户,并通知在线用户该用户上线的消息,同时在服务器端的用户列表中显示出来。(4)服务器处理用户下线信息:当使用客户端的用户下线时,服务器将接收到客户端发送的信息,判断是用户下线信息后。服务器将发送消息告诉目前在线的所有用户该用户下线,并在服务器端的列表中删除该用户的在线信息。(5)用户信息维护:系统管理员可以通过服务器增加用户、更新用户基本信息、删除用户、初始化用户密码等操作。2.2.3 非功能需求分析除了功能性需求,多用户网络聊天系统还应符合一些非功能性需求的要求,这些需求主要有:(1)健壮性:系统要强健可用,具备较高的可靠性,具有一定的容错能力,力求不发生系统崩溃、传输错误等情况。(2)实时性:对客户端、服务器传输的数据,及时响应、即时传输、及时处理,在一定时限内完成所有操作。(3)界面友好:界面符合用户视觉、审美以及使用等各方面习惯,提供人性化的操作界面和友好的使用体验。(4)易管理性:对软件的运行,尽量降低管理的复杂性,通过较少的步骤,技能实现系统的架设和运行。(5)适应性:以较低的硬件开销实现对不同的硬件环境的适应,并提供较好的可维护性。2.3 数据库需求数据库方面采用Oracle数据库。由于该系统访问数据库的人数是比较固定且数量并非巨大,因此使用office自带的Oracle数据库就可以承载所有用户对其访问,不会出现用户访问过大造成的阻塞的情况。数据库主要维护三张数据表:用户基本信息表、部门基本信息表、公司基本信息表。用户表字段为用户的账户、昵称、密码、住址、电子邮件等,其类型和对应关系如表2-1:表2-1 用户表关系表表名t_UserInfo(用户表)列名数据类型(精度范围)空/非空约束条件USER_NAMEVARCHAR2(20)非空PK、标识列USER_PWDVARCHAR2(20)非空默认值:“123”USER_NICKNAMEVARCHAR2(20)非空USER_SEXINTUSER_AGENUMBERUSER_BIRTHDAYDATEUSER_ZODIACVARCHAR2(2)续表2-1表名t_UserInfo(用户表)列名数据类型(精度范围)空/非空约束条件USER_TELVARCHAR2(20)USER_EMAILVARCHAR2(50)USER_COMPANYVARCHAR2(50)USER_ADDRESSVARCHAR2(50)USER_NTROVARCHAR2(500)USER_HEADPNAMEBLOBDEPT_NAMEVARCHAR2(20)非空部门表字段为部门的ID、名称、地址、电话等,其类型和对应关系如表2-2:表2-2 部门表关系表表名t_Dept(部门表)列名数据类型(精度范围)空/非空约束条件DEPT_IDINT非空PK、标识列DEPT_NAMEVARCHAR2(30)DEPT_MANAGERNAMEVARCHAR2(10)DEPT_COMPAYVARCHAR2(50)DEPT_EMPLOYEENUMNUMBERDEPT_ADDRESSVARCHAR2(50)DEPT_PHONEVARCHAR2(15)DEPT_TELVARCHAR2(15)DEPT_POSTCODENUMBERDEPT_EMAILVARCHAR2(30)DEPT_INTROVARCHAR2(200)公司表字段为公司的名称、地址、电话、成立时间等,其类型和对应关系如表2-3所示:表2-3 公司关系表表名t_Corp(公司表)列名数据类型(精度范围)空/非空约束条件COM_NAMEVARCHAR2(50)非空PKCOM_ADDRESSVARCHAR2(50)COM_BIRTHDAYDATECOM_PHONEVARCHAR2(15)COM_EMAILVARCHAR2(30)COM-POSTCODENUMBERCOM_INTROVARCHAR2(500)3. 企业即时通的设计3.1 系统流程企业即时通主要分服务器端、客户端两个模块。如果管理员成功添加一个账号,那么就可以使用该帐号进行用户登录操作,服务器将用户发送的登录信息与数据库中的已存帐号密码进行核对来完成用户身份验证。如果身份验证失败,那么服务器将向客户端反馈失败信息。客户端登录完成之后,将进入客户端的树形界面,点击任意用户就可以进行聊天、查询等操作。服务器端不转发客户端向其他客户端发送的聊天信息,服务器端只管理用户和企业的详细信息,服务器管理员可以维护公司、部门和用户的所有信息。通信的流程,服务器端开始运行开启服务后,将通过一个套接字监听客户的连接请求。客户端运行时,通过UDP将登录信息发送至服务器端,并等待服务器端回应。服务器端接收到客户端的UDP数据报后,将账户、密码信息取出,并与数据库相关表项进行比对,最后将身份验证结果反馈至客户端。如果身份验证成功,客户端与服务器端将通过三次握手建立起TCP连接,客户端就可以从服务器端获得在线用户的信息,并可以向其他在线用户启用功能进行交流。系统通信流程原理如图3-1所示:客户端服务器端发送连接请求等待客户端连接请求等待服务器回应启动网络服务启动网络服务验证客户并回应客户端验证成功UDP连接UDP连接将验证信息反馈客户TCP连接验证成功图3-1 系统通信原理图3.2 系统环境配置3.2.1 硬件要求内存256M即可满足该软件的运行条件,3.2.2 软件要求操作系统:Windows XP/ Win7数据库管理系统:ORACLE开发工具包:VC+、MFC3.3 运行设计3.3.1 运行模块组合具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据,例如: 客户端登录: 客户端发送登录消息到服务器,服务器进行判断用户的合法性,并反馈合法性给客户端。如图3-2所示:图 3-2 客户端登录 成功登录: 服务器发送在线用户信息表给客户端,客户端接收并刷新在线用户列表,如图3-3所示:图 3-3刷新在线用户列表服务器发送本人信息到客户端,客户端接收并设置本地的个人信息,如图3-4所示:图 3-4获取个人信息客户端查看在线用户消息: 客户端发送用户ID到服务器,服务器将被查询的用户信息发送给客户端,客户端接收并刷新在线用户信息,如图3-5所示:图 3-5查看好友信息客户端发起聊天:客户端根据用户的IP发送聊天信息,另一个客户端接收并显示聊天信息。两者同时保存聊天记录,如图3-6所示:图 3-6与好友聊天3.3.2 运行控制(1)本系统是在数据编程系统的支持下,展示界面由主窗口与子窗口嵌套而成,软件运行时有较友好的界面,基本能够实现用户的数据处理需求,窗口操作通过按钮控制,不同的按钮进行不同的操作实现不同的功能;(2)系统需要先启动数据库,然后管理员登录,然后启动聊天系统服务器,客户端才能进行登录;(3)为控制各数据管理用户对特定数据进行管理,各数据管理功能模块完全独立开发编译,但各数据管理功能模块不允许独立运行,只能在系统总控程序调度下执行。3.4 系统数据结构设计3.4.1 数据表结构设计数据库的命名:全部由英文小写字母组成,单词之间使用下划线分割,如企业即时通软件后台数据库命名:corperation_msg。数据库表命名:t_表义名(可以使用缩写),表义名:首字母大写的英文单词,单词之间以下划线分割,如用户表命名:t_UserInfo。企业即时通用的数据表主要有3个,其汇总如表3-1:表3-1 数据库表表名功能说明t_UserInfo用户表 t_CompInfo公司表t_DeptInfo部门表程序要用的表不需要在数据库中特别的建立表空间,只需要用视图选针性的使用上述主表中的一些字段即可。其总汇如表3-2:表3-2 程序用表表名功能说明表3-3 UserInfo个人信息表3-4 OtherInfo其他用户信息表3-5 DeptInfo部门信息 表3-6 CompInfo公司信息表3-7 ChatInfo聊天记录表3-8 MsgInfo消息结构体个人信息表用于在客户端,用户自己登录之后,对自己的进行查看和更新操作,其中用户账号(userID)是系统管理员给的所以用户不能自己修改,在数据库表中该内容应设置主键。而部门的编号(depID)是根据部门名称(depName)获得的,所以要设置外键。具体的表结构如表3-3。表3-3 (个人信息) UserInfo字段名称字段类型字段长度空/非空约束条件含义userIDstring20非空主键用户账号userNamestring20非空用户名nickNamestring20非空昵称sexstring1非空性别pswordstring20非空用户密码phonestring20非空电话号码emailstring20电子邮件areastring20地区psInfostring100个人描述depIDstring5非空外键部门IDdepNamestring20部门名称他人信息表也用于在客户端,用户自己登录之后,可以对其他用户的信息进行查看操作,要查找的信息及表的结构如表3-4。表3-4 (他人信息) OtherInfo字段名称字段类型字段长度空/非空约束条件含义userIDstring20非空用户账号userNamestring20非空用户名nickNamestring20非空昵称sexstring1非空性别phonestring20非空电话号码emailstring20电子邮件areastring20地区psInfostring100个人描述depIDstring5非空部门IDdepNamestring20部门名称部门信息表在客户端服务器都会用到,在客户端主要是用户查看部门信息时,在服务器端,主要是管理员对部门信息进行查询、更新和删除操作。其表结构如表3-5。表3-5 (部门信息) DeptInfo字段名称字段类型字段长度空/非空约束条件含义deptIDstring20非空主键部门IDdeptNamestring20非空部门名称deptDesScrstring100非空主键部门描述公司信息表在客户端服务器都会用到,在客户端主要是用户查看公司信息时,在服务器端,主要是管理员对公司信息进行查询、更新和删除操作。其表结构如表3-6。表3-6 (公司信息) CompInfo字段名称字段类型字段长度空/非空约束条件含义compNamestring20非空公司名称compAddrstring50非空公司地址compDoMain非空公司域名compPhonestring15非空公司电话compFaxstring15公司传真聊天记录表用在客户端,用户在相互聊天之后,可以通过该表查看聊天记录,其表结构如表3-7,约束条件为主键的表示该内容不能更改。表3-7 (聊天记录) ChatInfo字段名称字段类型字段长度空/非空约束条件含义chatSenderunsigned int20Not null主键发送者chatRecverunsigned int20Not null主键接收者chatTimeNot null主键时间chatContentchar200内容通讯信息表用于客户端,在用户相互聊天的时候用到。表3-8 (通讯消息) MsgInfo字段名称字段类型字段长度空/非空约束条件含义msgIDunsigned int4Not null主键消息IDmsgLenunsigned int4Not null消息长度msgContentstructXXX视情况消息内容3.4.2 数据结构与程序的关系程序中使用各种表来存储用户所需要使用的一些信息,必然会使用数据结构来包装这些信息,客户端和服务器端对表结构的使用如表3-10:表3-10表名 使用者客户端服务器表3-7-4 UserInfo表3-7-5 OtherInfo 表3-7-6 OnLineUser表3-7-7 DeptInfo表3-7-8 CompInfo表3-7-9 ChatInfo表3-7-10 MsgInfo3.5 系统报错处理设计3.5.1 报错信息客户端:(1)在服务器未启动时,用户无法进行登录操作,并且返回服务器未启动错误信息;(2)用户不能进行匿名登录,必须输入正确的用户名和用户密码,才能进行登录,登录失败,返回用户名或者密码错误;(3)发起聊天或者查看聊天信息时如果用户已经下线,返回用户已下线或者该用户不存在;(4)服务器如果中途停止工作,返回服务器已关闭。服务器端:(5)在管理员更新用户、公司或者部门信息的时候,如果填写的内容不符合要求,将返回内容不齐全等提示信息。3.5.2 补救措施由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库的恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户数据也不会丢失或遭到破环,但有可能占用更多的数据存储空间,权衡措施由用户来决定。系统软件出错很容易在出错日志里看到,我们对可能发生的错误会有一个错误编号以及相应的处理方式,以手册的方式提供。用户可以根据系统的提示信息进行相应的排错处理,建立系统运行日志,用于记录系统在运行过程中出现的可以预知的或无法判断的系统错误信息。硬件的出错处理信息需要检查网络环境。3.5.3 系统维护设计由于系统较小没有外加维护模块,仅靠数据库的一些基本维护措施即可。为便于维护,应该设计了三种日志:系统运行日志、操作日志、出错日志。三种日志根据不同的重要程度采取存放在文件和数据库的方式,系统管理员可以很轻松的监控系统运行情况,数据表的建立和删除有数据系统管理员予以维护。4 企业即时通的实现4.1 数据库的实现数据可以采用Oracle10g实现,建立表代码如附录1。4.2 客户端的实现客户端需要实现的功能有:用户登录、用户聊天、查询信息(本用户和其他用户信息)。4.2.1 用户登录功能登录功能是将用户的账户和密码发送到至服务器端,服务器端将接受到的身份验证消息与数据库中的现存数据进行比较,由于客户端不能自动获取服务器端的IP,因此除了用户名和密码参数之外,还需要设置指定服务器端IP地址用于客户端的连接。非法的用户无法登录到系统中,也不能使用其他用户的账号登录系统(即密码错误)。登录界面如图4-1所示:图4-1 登录界面用户登录时,用户名与密码均不能为空,否则将返回信息不完整。服务器地址必须要填写正确,否则无法连接到服务器。用户名和密码填好之后,点击确定程序就会对输入数据进行合法验证,代码如下:void CLoginDlg:OnOK() / TODO: Add extra validation hereif( UpdateData() )if (m_sUserName= | m_sPassword=)return;UINT uPort = (UINT)atoi(m_sPort.GetBuffer(m_sPort.GetLength();ASSERT(m_pTcpRequest!=NULL);m_pTcpRequest-Create();if (!m_pTcpRequest-Connect(m_sIp, uPort)m_pTcpRequest-Close();MessageBox(连接服务器失败!);return;/以下打包一段数据并发送出去/int iMsgType = MSG_LOGIN;/规定数据类型int size = sizeof(USER_LOGIN);char *szSend = new charsize+4;USER_LOGIN loginMsg;strcpy(loginMsg.username,m_sUserName.GetBuffer(m_sUserName.GetLength();strcpy(loginMsg.psword,m_sPassword.GetBuffer(m_sPassword.GetLength();memcpy(szSend, &iMsgType, 4);memcpy(szSend+4, &loginMsg, size);if(SOCKET_ERROR = m_pTcpRequest-Send(szSend, size+4)m_pTcpRequest-Close();MessageBox(Send Failed!套接字错误!);return;/Shell_NotifyIcon(NIM_DELETE, ¬ifyIconData);数据验证成功将成功登录,就会弹出一个界面,该界面就是客户端的主界面,如图4-2图4-2 客户端主界面4.2.2 聊天功能用户聊天界面如图4-3所示,用户登录成功之后,进入在线用户列表界面,用户可点击任意在线的用户进行聊天,对于被聊天的在线用户,将相应该用户的聊天,如果他们是首次建立聊天通信,那么被聊天用户的屏幕右下角讲产生闪动图标,双击可弹出聊天对话框,如果已经建立对话框,那么对方发送的消息讲直接显示在聊天对话框中。图4-3 聊天界面用户收发消息的代码如下(详细代码如附录3):void CSingleChatDlg:OnBtnSend() / TODO: Add your control notification handler code hereUpdateData();if (m_sMsg=)GetDlgItem(IDC_STATIC_TIP)-SetWindowText(消息不能为空!);return;int iSize =m_sMsg.GetLength();char szBuf10000;int iChatType = MSG_CHAT_SIG;memcpy(szBuf, &iChatType, 4);memcpy(szBuf+4,m_sUserName.GetBuffer(m_sUserName.GetLength(), 21);memcpy(szBuf+25, m_sMsg.GetBuffer(iSize),iSize);ASSERT(m_pChatMan!=NULL);m_pChatMan-SendMsg(szBuf, 25+iSize, m_uPort, m_sIp);m_sContext = m_sContext +我说: +m_sMsg+rn;m_sMsg = ;UpdateData(FALSE);void CSingleChatDlg:ShowMsg(CString sMsg)UpdateData();m_sContext = m_sContext + m_sOppoName +说: +sMsg+rn;UpdateData(FALSE);CString CSingleChatDlg:GetOppoName()return m_sOppoName;void CSingleChatDlg:OnCancel() / TODO: Add extra cleanup herem_pChatMan-DestroySingleChat(this);/CDialog:OnCancel();4.2.3 查询功能用户可以查看自己和其他用户的基本信息,并且可以更新自己除用户名、密码之类的一些信息,在在线用户列表中在某用户名字上点击右键可以查看该用户的个人信息。查询功能主要是对服务器数据库的操作,首先数据库与软件要连通。在程序中,调用函数执行数据库的一些操作语句,如select,insert,update等。相应代码如附录2。本用户信息查询如图4-4所示,好友信息如图4-5所示:图4-4 用户信息界面图4-5 好友信息界面4.3 服务器端的实现服务器是集中处理了所有客户端用户的各种请求,功能主要有:启动、关闭网络服务、管理员登录、用户上下线通知显示、维护数据库信息、维护在线用户列表。服务器主界面如图4-6所示:图4-6 服务器主界面4.3.1 管理员登录管理员登录界面如图4-7所示,身份验证(设置默认用户为111,密码为111)成功后,系统将启用具体维护用户、部门、公司信息的菜单选项。当点击登录时,程序验证数据的合法性,验证成功,主界面“启动服务器”按钮变灰,“停止服务器”按钮可点击。只有验证成功后,启动服务器,及后面对信息的维护才能有操作权限。如果管理员没有登录时无法启动服务器的,也无法操作数据。图4-7 管理员登录界面代码如下:void CServerDlg:OnBtnLogin() / TODO: Add your control notification handler code hereCManLoginDlg dlg;if (IDOK=dlg.DoModal()m_bIsLogin = true;CMenu menu;m_popupMenu.EnableMenuItem(IDP_ADDDEPART, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_DELUSER, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_RENAME, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_ADDDEPART, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_DEP_DELDEPART, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_RENAME_DEP, MF_ENABLED);m_popupMenu.EnableMenuItem(IDP_ADDC_ADDUSER, MF_ENABLED);m_popupMenu.Enabl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计与印刷课件
- 工业网络岗位安全培训课件
- 年度安全生产知识培训课件
- 年度安全培训个人总结课件
- 娱乐行业员工安全培训课件
- 工业气瓶安全使用培训
- 威海高区安全生产培训课件
- 城乡企业管理咨询业务合作合同7篇
- 年会安全培训总结课件
- 工业安全用电培训报告课件
- 智慧树知道网课《工业机器人技术基础》课后章节测试满分答案
- 2025年福建省榕圣建设发展有限公司项目招聘12人笔试参考题库附带答案详解
- 矿山设备检修安全培训课件
- 2025-2030数据安全合规审计服务市场爆发及等保测评机构并购价值评估
- 纤维转盘滤布滤池运行维护技术说明
- 2025至2030中国无烟产品行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国华电集团招聘面试题解析及备考建议手册
- 2025年机器人面试题及答案解析
- 高三第一次月考总结主题班会课件
- 参考活动2 善待身边的人教学设计-2025-2026学年初中综合实践活动苏少版七年级下册-苏少版
- 2025年度江苏省档案管理及资料员基础试题库和答案
评论
0/150
提交评论