详细功能分析报告_第1页
详细功能分析报告_第2页
详细功能分析报告_第3页
详细功能分析报告_第4页
详细功能分析报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

一、软件介绍该软件主要完成简单的多客户端实时通信和基于TCP协议的局域网聊天软件。首先启动服务器,在服务器启动后等待客户端的请求,同时显示离线用户列表。客户通过输入账号和密码登录。如果登录成功,客户端进入聊天界面,同时显示当前在线好友列表和离线好友列表。如果登录失败,客户端会被提示用户帐号或密码错误。当多个客户端进入聊天室时,可以在客户端之间进行群聊,用户也可以选择与当前在线的朋友进行私人聊天。二。需求分析2.1。任务概述随着信息时代的快速发展,互联网的应用越来越广泛。与此同时,实时聊天通信技术变得越来越重要。无论是在学校、家庭还是公司,局域网聊天已经成为我们日常生活中不可分割的一部分。该软件设计的局域网聊天系统可以实现局域网聊天、群聊、私人聊天等功能。2.2要求该软件可以完成多客户端通信。服务器包括:服务器启动、离线用户列表和在线用户列表,并完成客户端登录信息的验证。当用户成功登录时,服务器会实时刷新以前用户的列表。客户端包括:用户登录,当用户登录成功后,进入聊天界面,用户之间可以进行群聊和私人聊天。2.3。绩效管理条例2.3.1、时间特性要求所有发送操作的响应时间通常小于1秒。发送大量信息后,应在5秒内显示。如果没有发送失败,将提示相关的错误信息。当有离线用户在线时,用户在线列表更新时间将在3秒内响应。2.3.2、操作环境规定该软件只能在windows环境平台下运行,硬盘上有超过256兆的内存和1G的可用空间。三。总设计3.1。软件总体功能结构图图(3.1)软件总体功能结构图如图(3.1)所示,软件的整体功能结构图主要包括服务器端和客户端两部分。服务器端主要包括:连接数据库、用户列表更新和客户端信息处理。客户端包括:客户端登录、在线用户列表、离线用户列表、用户组聊天和用户私人聊天。3.2。软件工作流程图图(3.2)软件工作流程图如图(3.2)所示,对于整个软件工作的流程图,首先服务器启动,服务器等待客户端请求连接,然后客户端发送连接请求(发送账号和密码),然后等待服务器的响应。服务器收到连接请求后,会验证客户端信息。如果信息验证成功,则连接成功建立,朋友通过服务器向客户端发送朋友信息。3.3。整体服务器设计服务器端的主要功能:(1)数据库设计:设计一个数据库,用户在其中存储客户信息,如用户账号、密码、昵称等。(2)客户端请求信息处理:主要用于处理用户登录认证。如果身份验证成功,它将向客户端回复登录成功信息。(3)客户端信息转发:当客户端之间的通信主要完成时,客户端首先向服务器发送信息,服务器再将信息转发给其他客户端。(4)用户列表更新:主要用于新客户成功登录时更新当前用户列表和离线用户列表。3.4。客户的总体设计客户的主要功能:(1)客户端登录:主要完成客户端登录。客户端输入用户名和密码,然后登录。如果登录成功,它将跳转到聊天模块。如果登录失败,它将提醒用户名或密码错误。(2)连接到服务器:通过当前输入的账号和密码连接到服务器打开的端口号。(3)实时通讯模块:主要完成在线用户之间的群聊和私密聊天。(4)用户列表更新:主要显示当前在线好友列表和离线好友列表。四.详细设计4.1。详细的软件功能流程图图(4.1)软件详细功能流程图4.2。数据库设计该系统使用微软的访问数据库来存储用户信息。数据字典如下表所示:表1用户信息领域名字评论账号绰号名称密码strPass真实姓名strRealName性别strSex该系统将数据库操作封装成一个类,方便开发人员操作。相关功能介绍如下:开放数据库函数:void OpenDatabase();关闭数据库函数:void CloseDatabase();打开记录集:_ recordset ptre recordset(c string SQL);关闭记录集:void CloseRecordSet();4.3。程序中定义的核心数据结构1.定义消息头的数据结构typedef结构标记标题字符类型;intlen页眉,*编辑者;以上结构主要包含两部分。type是一个char字符,用于存储用户发送的消息类型。类型定义的值如下:# define login _ io1/用户登录消息#定义SEND_MESSAGE 3/用户发送消息#define PRIVATE_MESSAGE 4/用户私下聊了聊消息#定义PASS_SUCCESS 5/用户密码验证成功消息#define PASS_FAILED 6/用户密码验证失败消息#定义SERVER_STOP 7/服务器停止消息# define ask _ num 8/回复消息# defineasknum _ failed 9/响应失败消息#定义PRIVATE_ASK 10/私人聊天响应消息# define PRIVATE _ RERGE 11/私人聊天拒绝消息上面为软件定义的头消息结构类型主要包括:用户登录消息、用户发送消息、用户私人聊天消息、用户密码验证成功消息、用户密码验证失败消息、服务器停止消息、响应消息、响应失败消息、私人聊天响应消息和私人聊天拒绝消息。用户向服务器发送不同的消息类型,服务器收到消息类型后进行判断,并根据不同的消息类型进行不同的处理。2.定义用户登录信息的数据结构typedef结构LogonUserc字符串名称;c字符串密码;用户,*用户;以上结构主要包括两部分:用户名和密码。当用户登录时,客户端将用户发送到服务器,服务器在收到用户名和密码后对其进行验证。4.4。客户的详细设计1.用户登录模块(1)用户登录模块流程图图(4.2)用户登录模块流程图(2)程序描述对用户登录信息界面中输入的所有信息进行初步检查。如果发现错误,系统会提示用户输入错误,并要求用户再次输入。如果没有发现错误,切换到主界面。错误类型包括:输入数据不匹配、帐号(数据库没有帐号)和密码(密码与相应的帐号不匹配)。在登录界面中,主要功能有:判断是否为空:标识为空(名称、密码、服务器);创建套接字:创建套接字(服务器);发送账号:发送名称(名称);发送密码;发送账号和密码的功能是:/发送用户名void CDLGlogin : endname(c字符串名称)/设置发送类型head.type=LOGIN _ IO/发送长度head.len=name。getLength();/发送登录命令字m _ pSocket-发送(char *)头,大小(头);/发送账号m _ pSocket-发送(名称,名称。getLength();/发送密码作废CDlgLogin:SendPssword(密码)head.type=PASS _ SUCCESShead.len=密码。getLength();/发送PASS_SUCCESS命令字m _ pSocket-发送(char *)头,大小(头);m _ pSocket-发送(密码,密码。getLength();2.群聊模块(1)群聊模块流程图图(4.3)群聊模块流程图(2)程序描述群聊主要完成多个客户之间的交流。主要功能如下:更新用户列表:更新用户()接收消息:GetSendMessage()发送消息:OnButtonSend()发送消息的详细程序代码如下:void cchatclientdlg : onbuttonsend()/在此添加您的控制通知处理程序代码/获取发送的消息内容CString messaegeContentm_sendMessage。GetWindowText(消息内容);/判断发送的消息是否为空消息如果(消息内容= )AfxMessageBox(不能发送空消息!);/设置鼠标的焦点Cedit * Pedit=(Cedit *)GetDlgItem(IDC _ EDIT _ SENDINFO);pedit-SetFocus();返回;/发送消息的结构体表头。/发送消息的命令字head.type=SEND _ MESSAGE/发送消息的长度head.len=messaegeContent .getLength();/当前时间时间=时间:获取当前时间();/时间格式c字符串t=时间。格式( % H: % M :% S );/昵称字符串NikName=标题。m _ strNamec字符串str=NikName t r n MessaeGeContent;/发送命令字m _ pSocket-发送(char *)头,大小(头);/发送消息if(m _ Psocket-发送(LPCTSTR)字符串,字符串GetLength()/清空消息框m_sendMessage .setWindowText( );塞德特*派迪特=(塞德特*)GetDlgItem(国际数据中心_编辑_查信息);pedit-SetFocus();其他AfxMessageBox(网络传输错误!);3、私聊模块(1)私聊模块流程图图(4.4)私聊模块流程图(2)程序描述私聊模块主要实现点对点之间的通信,相关的函数如下所示:发送消息:OnButtonSend()获取消息:GetMessage(CString strPrivtMsg)其中发送消息的详细代码如下所示:void cprivateg : on button send()/在此添加您的控制通知处理程序代码c字符串发送消息;m_sendMessage .GetWindowText(发送消息);if(sendMsg= )AfxMessageBox(不能发送空消息!);塞德特*佩迪特=(塞德特*)GetDlgItem(国际数据中心_编辑_发送);pedit-SetFocus();返回;表头。如果私有或私有)head.type=LEAVE _ MESSAGEhead.len=发送消息.getLength();时间=时间:获取当前时间();c字符串t=时间。格式( % H: % M :% S );c字符串str1=theApp.m_strName t rn 发送消息 r n ;c字符串=ThE App。m _ strLeaveDesName ThE App。m _ strName ThE App。 m _ strName t r n 发

温馨提示

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

评论

0/150

提交评论