资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
南昌航空大学东软班 详细设计报告 版本:0.1.0 基于MFC的即时通讯软件的设计与实现详细设计总页数23正文20附录无生效日期2014/4/8编制批准16修 改 履 历修改编号日期修改人版本号修改内容10.1.0初始做成目 录1文档概述41.1文档目的和范围41.2术语/缩略语41.3参考文档42处理42.1模块数据结构定义42.1.1全局变量定义42.2模块功能实现62.2.1模块共有函数部分62.2.2服务器模块内部函数152.2.3客户端模块内部函数181 文档概述1.1 文档目的和范围该项目主要完成的是Windows下基于MFC的聊天软件,主要包括客户端模块和服务器模块,本文档的主要内容是本项目的各个模块详细设计,包括相应的模块结构,函数声明,宏定义等,主要目的是为项目的编码阶段提供设计参考。1.2 术语/缩略语序号术语/缩略语说明1MFC(Microsot Programing Interface)微软基础类库2SOCKET实现信息的发送与接收1.3 参考文档序号文档名作者时间版本1详细设计模板Neusoft2007-11-90102 处理2.1 模块数据结构定义2.1.1全局变量定义1. 宏定义const int MSG_LOGOIN = 0x01; /登陆const int MSG_SEND = 0x11; /发送消息const int MSG_CLOSE = 0x02; /退出const int MSG_UPDATE = 0x21; /更新信息2. 数据结构定义typedef struct tagHeaderint type ; /协议类型int nContentLen; /将要发送的内容的长度char to_user20;char from_user20;HEADER ,*LPHEADER;2.2 模块功能实现2.2.1模块共有函数部分2.2.1.1 msg_process【函数式样】函数名msg_process文件名client.cpp server.cpp功能概要分辨接收到的消息类型并处理记述形式void msg_process (Message msg)参数类型变量名I/O说明MessagemsgI接收到的消息返回值类型void说明值-详细说明底层接收到消息后,触发槽函数msg_process,在函数中通过对消息解析后调用不同的处理函数进行消息处理。使用注意事项无【函数处理流程】2.2.1.2 send_msg【函数式样】函数名send_msg文件名udpsocket.cpp功能概要发送信息至服务器记述形式int send_msg (int msg_op, Message msg, QString ip)参数类型变量名I/O说明intmsg_opI要发送的信息的操作码MessagemsgI要发送的信息QStringipI信息接收端的ip地址返回值类型int说明值SUCC正常结束FAIL异常结束详细说明将已经创建并填写的消息发送至服务器。使用注意事项消息必须预先创建好并填入信息后传入。【函数处理流程】2.2.1.3 draw_arc_windown【函数式样】函数名draw_arc_windown文件名ui界面文件中功能概要绘制圆角窗口记述形式bool draw_arc_windown ()参数类型变量名I/O说明-返回值类型bool说明值true正常结束fail异常结束详细说明绘制一个圆角矩形,并将圆角矩形设为当前窗口的矩形边框,是窗口设置成为圆角矩形。使用注意事项无【函数处理流程】2.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。使用注意事项无【函数处理流程】2.2.1.5 receive_msg【函数式样】函数名receive_msg文件名udpsocket.cpp功能概要接收信息并存储记述形式void receive_msg()参数类型变量名I/O说明-返回值类型void说明值-详细说明当readyRead()信号被触发时,进入该函数,获得消息队列中的信息,并发送信号msg_received信号。使用注意事项无【函数处理流程】2.2.1.6 user_*系列函数【函数式样】函数名user_*()文件名client.cpp server.cpp功能概要处理不同的消息所执行的对应函数记述形式void user_*(QString msg) (槽函数)参数类型变量名I/O说明QStringmsgI要处理的消息返回值类型void说明值-详细说明处理对应类型的消息所执行的函数,该系列函数内部结构一致,执行结束后将执行结果返回各个UI模块进行处理。使用注意事项无【函数处理流程】2.2.2服务器模块内部函数2.2.22.2.2.1 OnLogoIn()【函数式样】函数名OnLogoIn()文件名CClientSocket.cpp功能概要登陆记述形式void CClientSocket:OnLogoIN(char* buff, int nlen,char from_user20)参数类型变量名I/O说明CClientSocketI返回值类型void说明值-详细说明用户登陆后更新服务器端用户列表并在控件中显示登陆时间使用注意事项无【函数处理流程】2.2.2.2 OnMSGTranslate函数名OnMSGTranslate()文件名CClientSocket.cpp功能概要转发消息记述形式Void CClientSocket:OnMSGTranslate(char* buff, int nlen,char to_user20,char from_user20)参数类型变量名I/O说明-返回值类型-说明值-详细说明实现群聊和私聊功能使用注意事项【函数处理流程】2.2.2.3 UpdateAllUser函数名UpdateAllUser文件名CClientSocket.cpp功能概要更新所有在线用户记述形式void CClientSocket:UpdateAllUser(CString strUserInfo,char from_user20)参数类型变量名I/O说明CClientSocketstrUserInfoI保存有当前的鼠标事件返回值类型void说明值-详细说明由Unicode转换至通用字符使用注意事项无2.2.2.4 UpdateServerLog函数名UpdateServerLog文件名CClientSocket.cpp功能概要更新服务器在线名单记述形式CString CClientSocket:UpdateServerLog()参数类型变量名I/O说明CStringstrUserInfoI返回值类型void说明值-详细说明更新服务器显示使用注意事项无2.2.2.5 OnAccept函数名OnAccept文件名ServerSocket.cpp功能概要接收客户端登陆请求记述形式void CServerSocket:OnAccept(int nErrorCode)参数类型变量名I/O说明voidnErrorCodeISocket通信失败错误代码返回值类型void说明值-详细说明接收到一个连接请求后,开辟并初始化一个theClientSock*类型空间使用注意事项无2.2.2.6 OnReceive函数名OnReceive文件名CClientSocket.cpp功能概要接收并处理服务端数据记述形式Void CClientSocket:OnReceive(int nErrorCode)参数类型变量名I/O说明-voidnErrorCodeISocket通信失败错误代码返回值类型void说明值-详细说明接收客户端发来的数据,判断是登陆类型数据还是发送消息数据类型,并根据消息类型处理数据使用注意事项2.2.2.72.2.3客户端模块内部函数2.2.32.2.3.1 OnBnClickedBtnLogoin函数名OnBnClickedBtnSend文件名LogoInDlg.cpp功能概要客户端登陆服务器记述形式Void CLogoInDlg:OnBnClickedBtnLogoin()参数类型变量名I/O说明Void-返回值类型void说明值-详细说明登陆服务器时检查填写用户名的正确性并发送给服务器使用注意事项无2.2.3.2 LogoIn函数名OnBnClickedBtnSend文件名Logo
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号