已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 MFC 的即时通讯软件的设计与实现概要设计总页数 18 正文 15 附录 无 生效日期 2014/4/7编制 批准南昌航空大学东软班 概要设计2修 改 履 历修改编号 日期 修改人 版本号 修改内容1 VER0.1.0 初始做成23南昌航空大学东软班 概要设计3目 录1 文档概述 .41.1 文档目的和范围 .41.2 术语/缩略语 .41.3 参考文档 .42 模块概述 .42.1 模块功能定义 .52.2 模块结构 .52.3 模块动作时序 .83 接口说明 .93.1 数据结构定义 .93.2 主要函数 .113.2.1 模块共有部分函数 .113.2.2 服务器模块内部函数 .153.2.3 客户端模块内部函数 .16南昌航空大学东软班 概要设计41 文档概述1.1 文档目的和范围该项目主要完成的是 Windows 下的聊天软件,主要包括客户端模块和服务器模块,本文档的主要内容是本项目的各个模块概要设计,包括相应的模块结构,函数声明,宏定义等,主要目的是为项目的编码阶段提供设计参考。1.2 术语 /缩略语序号 术语/缩略语 说明1 MFC (Microsot Programing Interface)微软基础类库2 SOCKET 信息接收与发送机制,实现信息的发送与接收1.3 参考文档序号 文档名 作者 时间 版本1 概要设计模板 Neusoft 无 VER0.1.02 模块概述Windows 系统下聊天软件的设计和实现包括两个主要模块,客户端模块和服务器模块,客户端模块的主要功能是为用户提供友好的交互界面,使用户通过客户端进行服务器连接,实现注册、登录、聊天等基础功能,服务器模块的主要功能就是进行用户数据转发、服务器状态设置以及处理相应的客户端请求等功能。南昌航空大学东软班 概要设计52.1 模块功能定义1. 客户端模块序号 功能点 功能点详细内容1 用户注册 用户通过客户端进行注册,根据注册结果进行提示2 用户登录 用户通过注册的账号进行登录,根据登录结果进行提示6 好友删除 用户可以对已添加的好友进行删除7 个人信息设置 用户可以更改已设置的个人信息并保存到服务器8 个人当前状态设置 用户可修改当前的在线状态,状态可为上线、隐身、离线9 信息通讯 用户可向好友进行文本、图片信息发送10 表情通讯 用户可以选择客户端提供的表情进行发送11 文件传送 用户可向好友发送文件12 聊天记录管理 用户可以实现本地聊天记录保存并查看13 系统消息通知 系统消息实在小窗口弹出14 好友列表更新 好友列表随好友状态更新15 聊天字体改变 更换喜欢的字体用户聊天内容2. 服务器模块序号 功能点 功能点详细内容1 用户状态显示 显示用户的登录、离线时间等2 用户信息及请求转发 接收并转发部分用户信息至好友客户端3 客户端信息处理 处理来自客户端的相应的请求信息4 用户列表显示 显示当前在线用户2.2 模块结构1. 客户端模块南昌航空大学东软班 概要设计6客 户 端服 务 器L o g o I nU p d a t e A l l U s e rO n R e c e i v eU p d a t e A l l U s e r O n A c c e p tS e n d M S GO n B n C l i c k e d B t nS e n dO n B n C l i c k e d B t n Lo g i n模块名称 模块类型 概要说明OnAccept 内部函数 服务器响应客户端数据请求函数OnReceive 内部函数 服务器接受并判明客户端请求类型函数OnMSGTranslate 内部函数 服务器转发客户端数据函数OnLogoIn 内部函数 服务器允许客户端登陆请求函数UpdateAllUser 内部函数 服务端通知客户端更新在线用户列表UpdateServerLog 内部函数 服务端 ListBox 控件更新操作函数UpdateUserInfo 内部函数 更新服务端用户在线列表2. 服务器模块南昌航空大学东软班 概要设计7服 务 器客 户 端U p d a t e A l l U s e rO n R e c e i v eO n A c c e p tO n L o g o I nO n M S G T r a n s l a t eU p D a t e S e r v e r L ogU p d a t e U s e r I n f oL o g o I n O n R e c e i v e模块名称 模块类型 概要说明OnBnClickedBtnLogoin 内部函数 客户端登陆按钮LogoIn 内部函数 客户端向服务端发送登陆请求OnBnClickedBtnSend 内部函数 客户端向服务端准备发送数据SendMSG 内部函数 客户端向服务端发送数据操作OnReceive 内部函数 客户端接收服务端数据接口UpdateText 内部函数 客户端更换聊天字体颜色南昌航空大学东软班 概要设计82.3 模块动作时序客户端登陆界面 服务器客户端聊天窗口请求登陆账号密码正确允许登陆更新客户端在线用户列表更新服务器在线用户列表发送聊天内容转发客户端聊天内容注销登陆更新客户端在线用户列表操作 1 ( )3 接口说明3.1 数据结构定义1. 宏定义const int MSG_LOGOIN = 0x01; /登陆const int MSG_SEND = 0x11; /发送消息const int MSG_CLOSE = 0x02; /退出南昌航空大学东软班 概要设计9const int MSG_UPDATE = 0x21; /更新信息2. 数据结构定义typedef struct tagHeaderint type ; /协议类型int nContentLen; /将要发送的内容的长度char to_user20;char from_user20;HEADER ,*LPHEADER;3.2 主要函数3.2.1 模块共有部分函数3.2.1.1 msg_process函数名 msg_process文件名 client.cpp server.cpp功能概要 分辨接收到的消息类型并处理记述形式 void msg_process (Message msg)参数类型 变量名 I/O 说明Message msg I 接收到的消息类型 void 说明返回值值 - -详细说明底层接收到消息后,触发槽函数 msg_process,在函数中通过对消息解析后调用不同的处理函数进行消息处理。使用注意事项无南昌航空大学东软班 概要设计103.2.1.2 send_msg函数名 send_msg文件名 udpsocket.cpp功能概要 发送信息至服务器记述形式 int send_msg (int msg_op, Message msg, QString ip)参数类型 变量名 I/O 说明int msg_op I 要发送的信息的操作码Message msg I 要发送的信息QString ip I 信息接收端的 ip 地址类型 int 说明SUCC 正常结束返回值值FAIL 异常结束详细说明将已经创建并填写的消息发送至服务器。使用注意事项消息必须预先创建好并填入信息后传入3.2.1.3 draw_arc_windown函数名 draw_arc_windown文件名 ui 界面文件中功能概要 绘制圆角窗口记述形式 bool draw_arc_windown ()参数类型 变量名 I/O 说明- - - -南昌航空大学东软班 概要设计11类型 bool 说明true 正常结束返回值值fail 异常结束详细说明绘制一个圆角矩形,并将圆角矩形设为当前窗口的矩形边框,是窗口设置成为圆角矩形。使用注意事项无3.2.1.4 get_local_ip函数名 get_local_ip文件名 udpsocket.cpp server.cpp功能概要 获得本机当前的 ip记述形式 QString get_local_ip();参数类型 变量名 I/O 说明- - - -类型 QString 说明返回值值 ip 返回本机当前的 ip 地址详细说明函数内部先通过接口获得包括环回地址在内的所有 ip,之后通过筛选选出正确的当前 ip。使用注意事项无3.2.1.5 connect_all函数名 connect_all文件名 client.cpp server.cpp功能概要 连接模块中所有的信号与信号槽南昌航空大学东软班 概要设计12记述形式 void connect_all()参数类型 变量名 I/O 说明- - - -类型 void 说明返回值值 - -详细说明将所有的信号与信号槽连接在一起。使用注意事项无3.2.1.6 receive_msg函数名 receive_msg文件名 udpsocket.cpp功能概要 接收信息并存储记述形式 void receive_msg()参数类型 变量名 I/O 说明- - - -类型 void 说明返回值值 - -详细说明当 readyRead()信号被触发时,进入该函数,获得消息队列中的信息,并发送信号 msg_received 信号。使用注意事项无南昌航空大学东软班 概要设计133.2.1.7 user_*()系列函数函数名 user_*()文件名 client.cpp server.cpp功能概要 处理不同的消息所执行的对应函数记述形式 void user_*(QString msg) (槽函数)参数类型 变量名 I/O 说明QString msg I 要处理的消息类型 void 说明返回值值 - -详细说明处理对应类型的消息所执行的函数,该系列函数内部结构一致,执行结束后将执行结果返回各个 UI 模块进行处理。使用注意事项无3.2.2 服务器模块内部函数3.2.2.1 OnLogoIn()函数名 OnLogoIn文件名 CClientSocket.cpp功能概要 登陆记述形式 void CClientSocket:OnLogoIN(char* buff, int nlen,char from_user20)参数类型 变量名 I/O 说明CClientSocket I返回值 类型 void 说明南昌航空大学东软班 概要设计14值 - -详细说明用户登陆后更新服务器端用户列表并在控件中显示登陆时间使用注意事项无3.2.2.2 OnMSGTranslate函数名 OnMSGTranslate文件名 CClientSocket.cpp功能概要 转发消息记述形式 Void CClientSocket:OnMSGTranslate(char* buff, int nlen,char to_user20,char from_user20)参数类型 变量名 I/O 说明- - - -类型 - 说明返回值值 - -详细说明实现群聊和私聊功能使用注意事项3.2.2.3 UpdateAllUser函数名 UpdateAllUser文件名 CClientSocket.cpp功能概要 更新所有在线用户记述形式 void CClientSocket:UpdateAllUser(CString strUserInfo,char from_user20)南昌航空大学东软班 概要设计15参数类型 变量名 I/O 说明CClientSocket strUserInfo I 保存有当前的鼠标事件类型 void 说明返回值值 - -详细说明由 Unicode 转换至通用字符使用注意事项无3.2.2.4 UpdateServerLog函数名 UpdateServerLog文件名 CClientSocket.cpp功能概要 更新服务器在线名单记述形式 CString CClientSocket:UpdateServerLog()参数类型 变量名 I/O 说明CString strUserInfo I类型 void 说明返回值值 - -详细说明更新服务器显示使用注意事项无3.2.2.5 OnAccept函数名 OnAccept南昌航空大学东软班 概要设计16文件名 ServerSocket.cpp功能概要 接收客户端登陆请求记述形式 void CServerSocket:OnAccept(int nErrorCode)参数类型 变量名 I/O 说明void nErrorCode I Socket 通信失败错误代码类型 void 说明返回值值 - -详细说明接收到一个连接请求后,开辟并初始化一个 theClientSock*类型空间使用注意事项无3.2.2.6 OnReceive函数名 OnReceive文件名 CClientSocket.cpp功能概要 接收并处理服务端数据记述形式 Void CClientSocket:OnReceive(int nErrorCode)参数类型 变量名 I/O 说明-void nErrorCode I Socket 通信失败错误代码类型 void 说明返回值值 - -详细说明接收客户端发来的数据,判断是登陆类型数据还是发送消息数据类型,并根据消息类型处理数据使用注意事项南昌航空大学东软班 概要设计173.2.3 客户端模块内部函数3.2.3.1 OnBnClickedBtnLogoin函数名 OnBnClickedBtnSend文件名 LogoInDlg.cpp功能概要 客户端登陆服务器记述形式 Void CLogoInDlg:OnBnClickedBtnLogoin()参数类型 变量名 I/O 说明Void - -类型 void 说明返回值值 - -详细说明登陆服务器时检查填写用户名的正确性并发送给服务器使用注意事项无3.2.3.2 LogoIn函数名 OnBnClickedBtnSend文件名 LogoInDlg.cpp功能概要 客户端登陆服务器记述形式 BOOL CClientSocket:LogoIn(LPSTR lpBuff, int nlen,char from_user20)参数类型 变量名 I/O 说明- -类型 Bool 说明TRUE 正常结束返回值值false 异常结束南昌航空大学东软班 概要设计18详细说明登陆服务器时发送数据自定义协议使用注意事项无3.2.3.3 OnBnClickedBtnSend函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 票据贴现业务营销方案(3篇)
- 粉料回收施工方案(3篇)
- 美食账号营销推广方案(3篇)
- 药库疫情应急预防预案(3篇)
- 袋装灰土回填施工方案(3篇)
- 部门停工应急预案演练(3篇)
- 钢烟筒施工方案6(3篇)
- 门窗施工方案怎么编写(3篇)
- 隧道施工方案汇报总结(3篇)
- 餐厅特殊天气应急预案(3篇)
- 2025年康达专转本护理题库及答案
- 食品工厂卫生管理操作标准流程
- 2024天津石油职业技术学院教师招聘考试真题及答案
- 药物外渗封闭方法图解
- 1完整版本.手拉手模型-课件
- 《直线与圆锥曲线》参考教案
- (完整)广州版小学英语单词分类表
- 八上语文必背古诗文(原文+翻译+考点梳理)
- 英语四级单词4500
- 神经内科临床常用药物课件
- 妊娠合并子宫肌瘤护理查房
评论
0/150
提交评论