概要设计-基于s3c2440平台的UDP网络编程的设计与实现_第1页
概要设计-基于s3c2440平台的UDP网络编程的设计与实现_第2页
概要设计-基于s3c2440平台的UDP网络编程的设计与实现_第3页
概要设计-基于s3c2440平台的UDP网络编程的设计与实现_第4页
概要设计-基于s3c2440平台的UDP网络编程的设计与实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

基于 s3c2440 平台的 UDP 网络编程的设计与实现概要设计2总页数 无 2013/12/20编制南昌航空大学东软班 概要设计3修 改 履 历修改编号 日期 修改人 版本号 修改内容1 2013/12/20 郭侥 VER0.1.0 初始做成23南昌航空大学东软班 概要设计4目 录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南昌航空大学东软班 概要设计51 文档概述1.1 文档目的和范围该项目主要完成的是 Linux 下的聊天软件,主要包括客户端模块和服务器模块,本文档的主要内容是本项目的各个模块概要设计,包括相应的模块结构,函数声明,宏定义等,主要目的是为项目的编码阶段提供设计参考。1.2 术语 /缩略语序号 术语/缩略语 说明1 QT 图形界面设计开发工具2 SOCKET 信息接收与发送机制,实现信息的发送与接收1.3 参考文档序号 文档名 作者 时间 版本1 概要设计模板 Neusoft 无 VER0.1.02 模块概述Linux 系统下聊天软件的设计和实现包括两个主要模块,客户端模块和服务器模块,客户端模块的主要功能是为用户提供友好的交互界面,使用户通过客户端进行服务器连接,实现注册、登录、聊天等基础功能,服务器模块的主要功能就是进行用户数据保存和管理、服务器状态设置以及处理相应的客户端请求等功能。南昌航空大学东软班 概要设计62.1 模块功能定义1. 客户端模块序号 功能点 功能点详细内容1 用户注册 用户通过客户端进行注册,根据注册结果进行提示2 用户登录 用户通过注册的账号进行登录,根据登录结果进行提示3 用户密码找回 用户通过密码保护资料进行密码找回4 好友添加 用户通过搜索好友进行好友添加5 好友搜索 用户通过好友的个人信息进行好友搜索6 好友删除 用户可以对已添加的好友进行删除7 个人信息设置 用户可以更改已设置的个人信息并保存到服务器8 个人当前状态设置 用户可修改当前的在线状态,状态可为上线、隐身、离线9 信息通讯 用户可向好友进行文本、图片信息发送10 表情通讯 用户可以选择客户端提供的表情进行发送11 文件传送 用户可向好友发送文件12 聊天记录管理 用户可以实现本地聊天记录保存并查看13 系统消息通知 系统消息实在小窗口弹出14 好友列表更新 好友列表随好友状态更新15 好友上下线提示 好友上下线弹窗提示2. 服务器模块序号 功能点 功能点详细内容1 用户管理 对用户的注册、登录、个人信息等进行管理2 用户信息及请求转发 接收并转发部分用户信息至好友客户端3 客户端信息处理 处理来自客户端的相应的请求信息2.2 模块结构1. 客户端模块南昌航空大学东软班 概要设计7模块名称 模块类型 概要说明LogInUI 界面 用户登录界面PWForgetUI 界面 用户密码找回界面RegisterUI 界面 用户注册界面MainUI 界面 主程序界面ChatUI 界面 聊天界面界面UserInforUI 界面 用户信息查看界面ChatBoxUI 界面 聊天记录管理器界面FriendSearchUI 界面 好友搜索界面MessageBoxUI 界面 系统消息盒子界面Init 内部函数 对主程序模块进行初始化,包括信号和界面的初始化Connect_all 内部函数 对主程序块需要使用到的信号进行初始化Slots 内部函数组 为信号对应的槽函数,包括消息接收、按钮事件等Msg_process 内部函数 处理登录模块接收到的信息User_MessageBoxCreate 内部函数 创建系统消息盒子显示系统消息User_Chat 内部函数 显示好友发送给用户的消息User_friend_log 内部函数 修改好友的在线状态信息ButtonSlots 内部函数组 为登录模块按钮信号对应的槽函数组SendMessage 内部函数 向服务器发送数据ChatBoxCreate 内部函数 创建好友聊天框UserInforChange 内部函数 用户信息发生改变Initialize 内部函数 对登录模块进行初始化,包括信号和界面的初始化SetSignal 内部函数 对登录模块需要使用到的信号进行初始化InitUI 内部函数 对登录模块的界面进行初始化南昌航空大学东软班 概要设计8Slots 内部函数组 为信号对应的槽函数,包括消息接收、按钮事件等MessageProcess 内部函数 处理登录模块接收到的信息ButtonSlots 内部函数组 为登录模块按钮信号对应的槽函数组Socket 内部模块 用于发送和接收信息Set_friend_list 内部函数 将获取的好友列表加载至界面中2. 服务器模块模块名称 模块类型 概要说明MainUI 界面 主程序界面UserInforUI 界面 用户信息查看界面ConfigUI 界面 设置界面Initialize 内部函数 对主程序模块进行初始化,包括信号和界面的初始化Connect_All 内部函数 对主程序块需要使用到的信号进行初始化Init 内部函数 对主程序模块的界面进行初始化Slots 内部函数组 为信号对应的槽函数,包括消息接收、按钮事件等Msg_process 内部函数 处理登录模块接收到的信息User_Register 内部函数 处理用户注册信息User_Chat 内部函数 处理用户聊天信息User_Log 内部函数 处理用户登录/登出的请求南昌航空大学东软班 概要设计9User_Pw_Change 内部函数 处理用户密码修改的请求User_UserInforChange 内部函数 处理用户信息修改的请求User_userInforGet 内部函数 处理用户信息获取的请求User_Friend_List 内部函数 处理用户的好友列表请求User_State_Change 内部函数 处理用户的状态改变请求User_Friend_Ask 内部函数 处理用户的好友申请请求User_File_Send 内部函数 处理用户的文件发送申请请求ButtonSlots 内部函数组 为登录模块按钮信号对应的槽函数组SendMessage 内部函数 向客户器发送数据2.3 模块动作时序南昌航空大学东软班 概要设计103 接口说明3.1 数据结构定义1. 宏定义#define SUCC 1#define FAIL 0#define MSG_REGISTER 1#define MSG_PW_FORGET 2#define MSG_INFO_CHANGE 3#define MSG_SEARCH 4#define MSG_ADD_ASK 5#define MSG_ADD_REPLY 6#define MSG_FRIEND_LIST 7#define MSG_STATE_CHANGE 8#define MSG_LOGIN 9#define MSG_HIDE 10#define MSG_OFFLINE 11#define MSG_CHAT_SEND 12#define MSG_CHAT_RECE 13#define MSG_FILE_SEND 14#define MSG_FILE_REPLY 15#define MSG_DELETE_FRI 16#define MSG_FRI_COMMENT 17#define MSG_SYS 182. 数据结构定义class MyFilepublic:南昌航空大学东软班 概要设计11QFile *local_file;qint64 total_bytes;qint64 bytes_written;qint64 bytes_to_write;qint64 load_size;QString file_name;QString file_path;qint64 bytes_rece;qint64 file_name_size;QByteArray out_block;QByteArray in_block;class Userpublic:QString no;QString name;QString password;QString ip;QString label;QString icon;QString pw_protect;int age;QString sex;int state;南昌航空大学东软班 概要设计123.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,在函数中通过对消息解析后调用不同的处理函数进行消息处理。使用注意事项无3.2.1.2 send_msg函数名 send_msg文件名 udpsocket.cpp功能概要 发送信息至服务器记述形式 int send_msg (int msg_op, Message msg, QString ip)参数南昌航空大学东软班 概要设计13类型 变量名 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 说明- - - -类型 bool 说明true 正常结束返回值值fail 异常结束详细说明绘制一个圆角矩形,并将圆角矩形设为当前窗口的矩形边框,是窗口设置成为圆角矩形。使用注意事项无南昌航空大学东软班 概要设计143.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功能概要 连接模块中所有的信号与信号槽记述形式 void connect_all()参数类型 变量名 I/O 说明- - - -类型 void 说明返回值值 - -详细说明将所有的信号与信号槽连接在一起。南昌航空大学东软班 概要设计15使用注意事项无3.2.1.6 receive_msg函数名 receive_msg文件名 udpsocket.cpp功能概要 接收信息并存储记述形式 void receive_msg()参数类型 变量名 I/O 说明- - - -类型 void 说明返回值值 - -详细说明当 readyRead()信号被触发时,进入该函数,获得消息队列中的信息,并发送信号 msg_received 信号。使用注意事项无3.2.1.7 user_*()系列函数函数名 user_*()文件名 client.cpp server.cpp功能概要 处理不同的消息所执行的对应函数记述形式 void user_*(QString msg) (槽函数)参数类型 变量名 I/O 说明QString msg I 要处理的消息南昌航空大学东软班 概要设计16类型 void 说明返回值值 - -详细说明处理对应类型的消息所执行的函数,该系列函数内部结构一致,执行结束后将执行结果返回各个 UI 模块进行处理。使用注意事项无3.2.2 服务器模块内部函数3.2.2.1 exe函数名 exe文件名 mydatabase.cpp功能概要 对传入的 MySql 语句进行执行记述形式 void exe(QString sql)参数类型 变量名 I/O 说明QString sql I 要执行的 sql 语句类型 void 说明返回值值 - -详细说明将要执行的 sql 语句传入函数中,函数中通过 QSqlQuery 的对象执行 sql 语句并获得处理结果。使用注意事项无3.2.2.2 MyDatabase函数名 MyDatabase南昌航空大学东软班 概要设计17文件名 mydatabase.cpp功能概要 初始化数据库模块,打开数据库记述形式 MyDatabase() (构造函数)参数类型 变量名 I/O 说明- - - -类型 - 说明返回值值 - -详细说明本函数调用 qt 与 mysql 的接口模块 ,打开 mysql 数据库,并通过设置数据库名称密码等,打开对应的database,并在第一次使用服务器时在数据库中建立聊天系统运行必须的用户表及对应关系表。使用注意事项无3.2.3 客户端模块内部函数3.2.3.1 MousePressEvent函数名 MousePressEvent文件名 ui_*.cpp功能概要 获得鼠标按下时的坐标并保存记述形式 Void MousePressEvent(QMouseEvent *event)参数类型 变量名 I/O 说明QMouseEvent * event I 保存有当前的鼠标事件类型 void 说明返回值值 - -详细说明保存鼠标按下时的坐标,用于鼠标点击移动窗口。南昌航空大学东软班 概要设计18使用注意事项无3.2.3.2 MouseMoveEvent函数名 MouseMoveEvent文件名 ui_*.cpp功能概要 获得鼠标按下时的坐标并保存记述形式 Void MouseMoveEvent(QMouseEvent *event)参数类型 变量名 I/O 说明QMouseEvent * event I 保存有当前的鼠标事件类型 void 说明返回值值 - -详细说明获得鼠标移动时的坐标,并根据之前保存的鼠标按下时的坐标值来设置鼠标移动窗

温馨提示

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

评论

0/150

提交评论