短信网关设计方案报告.doc
《短信网关设计方案报告.doc》由会员分享,可在线阅读,更多相关《短信网关设计方案报告.doc(56页珍藏版)》请在咨信网上搜索。
1、项目设计汇报 上海易嵌 项目名称: 短信收发系统设计 项目责任人: 汤汝 项目时间: 组员: 邵林、陈阳、余刚 目录概要设计部分3一、设计需求3用户端要求3服务端要求3限制性需求4项目分配情况4二、体统总体结构图5三、模块介绍51.服务器52. 协议层83. 应用层模块11具体设计部分13一、 服务器设计和分析(责任人:余刚)13服务器应用层输入输出13模块功效函数13二、协议层设计和分析(责任人:汤汝)211.用户端注册模块212.用户端数据处理模块:253.用户端打包解包模块284.服务端收发模块29三、应用层设计和分析(责任人:邵林、陈阳)321. 各函数模块介绍321.1短信设置模块3
2、21.2短信编辑模块351.3短信操作模块361.4保留模块392. 视图模块正确构建422.1已发件箱422.2 初稿箱模块432.3 写信箱442.4 发件箱模块452.5 收件箱模块452.6 短信设置模块462.7 自定义文件夹模块47概要设计部分一、设计需求使用TCP/IP协议模拟GSM协议设计短信收发系统。用户端要求1. 用户端第一界面为写短信,收件箱,发件箱,已发件箱,初稿箱,短信设置。用户可自定义文件夹。2. 写短信界面进入后需要输入收件人和短信内容,收件人能够从电话本模块中选择,也能够直接输入号码,如输入号码和电话本中存在统计匹配,需直接显示为电话本中姓名,输入完成后可进行发
3、送操作或存入初稿箱。3. 收件箱中存放从网络端收到短信,收件箱中短信根据接收时间排序,未读短信需要被标识。对收件箱操作包含删除短信(包含单条删除,多条删除和全部删除),显示短信数量,按发件人排序。单独对每个短信条目标操作包含删除,回复,转发,查看信息详情,将发件人保留至电话本,将短信内容中号码保留至电话本,将短信条目移至自定义文件夹。4. 发件箱中保留正在发送中短信,如发送成功,则短信转存至已发件箱中。如发送失败,则短信仍保留在发件箱中。对发件箱操作包含删除短信(包含单条删除,多条删除和全部删除),显示短信数量。单独对每个短信条目标操作包含删除,转发,发送。5. 已发件箱中保留发送成功短信,对
4、已发件箱操作包含删除短信(包含单条删除,多条删除和全部删除),显示短信数量,按收件人排序。单独对每个短信条目标操作包含删除,转发,查看信息详情,将收件人保留至电话本。6. 初稿箱存放短信编辑初稿,对初稿箱操作包含删除短信(包含单条删除,多条删除和全部删除),显示短信数量。单独对每个短信条目标操作包含删除,发送。7. 自定义文件夹由用户定义,用户可定义自定义文件夹名称。对自定义文件夹操作包含删除文件夹,删除短信(包含单条删除,多条删除和全部删除),显示短信数量。对单条短信操作同收件箱。用户可定义多个自定义文件夹。8. 短信设置中条目项为 是否匿名发送,目前容量显示,自定义文件夹管理,是否开启发送
5、汇报,短消息服务中心设置,信息使用期,短信黑名单功效。自定义文件夹管理包含创建自定义文件夹,重命名自定义文件夹,删除自定义文件夹。服务端要求服务器端需实现接收,存放和转发三种基础功效。另需依据SMS协议标准实现延时发送,定时发送,匿名发送,短信屏蔽功效。服务器端需开启守护进程。短信服务器:A、提供用户管理表B、提供短信发送日志并通知是否抵达用户手机C、提供短信接收日志并响应用户端程序连接请求D、短信内容服务可关键分为点播和订阅两张,点播类型随机发生,用户需要该信息临时点播,为一次性服务,订阅信息由用户定制订阅关系,服务方按时向全部订阅者发送一样信息E、手机用户在申请使用服务方所提供信息服务前,
6、需要注册。注册中要对手机用户进行验证,验证经过后注册成功限制性需求1 短信字符编码要求依据SMS协议实现。2 用户端电话本条数最大200条。用户端短信最大条目数为300条。最大条目数指全部短信文件夹内包含条目数总量。服务器端存放容量不做限制。四 安全性及可靠性需求1 要求网络传输非明码传输,并确保网络传输数据之可靠性。2 要求服务器端稳定安全。3 要求用户端存放安全。项目分配情况责任人任务备注汤汝总体设计汇报,协议层设计汇报,和实现和调试,应用层电话簿功效实现。确保协议层实现,负责审核各个模块设计,提供参考性意见。余刚服务器设计汇报,服务器实现和调试。确保服务器稳定安全。陈阳、邵林应用层设计汇
7、报,应用层实现和调试。良好界面控制,程序稳定和安全。全体组员对项目进行综合性调试和测试。确保实现基础功效前提下进行版本升级。二、体统总体结构图三、模块介绍1.服务器责任人:余刚服务器设计为多线程程序,每次用户注册后创建线程为其提供服务。每次用户退出结束结束服务线程。服务器运行开启守护进程,负责写日志和清理到期发送失败短信。其响应步骤图以下:每次用户开机时全部和服务端建立连接,检验服器失败队列中是否有自己消息。服务器收到后保留该用户id号到数组中,并统计总个数。当用户关机后,服务器和她断开连接,删除数组中id号,并个数减一。线程接收短信包后提取目标地址,分析目标地址,设置源地址,转发;线程处理步
8、骤以下:接收模块:当用户发送信息报时,服务器接收并保留。解析模块:将信息报信息解析出来(包含目标地址,源地址,大小,内容)存入结构体中。发送模块:将结构体发送到目标地址。提供短信发送日志并通知是否抵达用户手机发送失败分析:1. 若对方手机未开机,则服务器保留消息,等候用户开机后再发送。2. 若是网络问题则重新发送,并确定是否接收成功。服务器数据结构:Struct list_fail_pack *head /失败队列头节点(全局)#define total 100 /服务器能接收用户端个数int count 统计目前连接用户个数Struct clientInt client_fd;/套接字描述符
9、Char number12;/电话号码Pthread_t thread_id;/线程IDStruct client *next; /用户连接时发送给服务器结构体,统计用户信息Struct list_headStruct list_head *prev;Struct list_head *next;Struct fail_packStruct client_send_pack tmp;Struct time timestamp;/发送失败后保留结构体Struct list_fail_packStruct List_head list_h;Struct fail_pack f_pack;/建立失败
10、内容链表2. 协议层协议层分为用户端和服务器两种;总共有两个线程,其中接收线程一直存在系统中阻塞读取端口信息,接收到信息后解压解密后发送给应用层。发送线程由用户调用接口函数后开启发送线程,取得发送内容后压缩加密后再打包,发送至服务端。Struct client_send_pdu_head/用户发送数据包头部Unsigned char sca13;Unsigned char pdu_type;Unsigned char mr;Unsigned char da_len;/目标地址长度Unsigned char da_type;Unsigned char da11;/目标地址Unsigned cha
11、r pid;Unsigned char dcs;Unsigned char vp;Unsigned char udl;/用户数据长度;Struct client_recv_pdu_head/用户接收数据包头部Unsigned char sca13;Unsigned char pdu_type;Unsigned char oa_len;/源地址长度Unsigned char oa_typeUnsigned char oa11;/源地址Unsigned char pid; Unsigned char dcs; Unsigned char scts7;Unsigned char udl;/用户数据长
12、度;Struct client_send_pdu/用户端发送数据包 Struct client_send_pdu_head head;Char buffer140;;Struct client_recv_pdu/用户端接收数据包Sturct client_recv_pdu_head head;Char buffer140;;协议层模块图:用户端协议层:服务端协议层:服务器协议需要修改数据包头部信息,在将发送用户填充到源地址里去;用户端协议层接口:/*应用层发送接口*/Unsigned int app_send(const char *app_buf, size_t buf_len,const
13、char *number);/*应用层接收接口*/Unsigned int app_recv(char *app_buf,size_t buf_len,char *number);服务器协议层接口:/*服务器发送接口*/Unsigned int ser_send(int dest_sockfd, struct client_recv_pdu *temp, size_t temp_size,const char *src_number);/*服务器接收接口*/Unsigned int ser_recv(int src_sockfd, struct client_send_pdu *temp, s
14、ize_t temp_size);3. 应用层模块短信系统设计短信应用层概要步骤图。应用层包含收件箱、写短信、发件箱、初稿箱、已发件箱、短信设置和私密信箱(自定义文件夹)七大功效,每个功效有各自子功效。应用层经过两个进程进行短信收发及其它信息传输。应用层将短信信息及多种标志传输给协议层,协议层经过处剪发送给服务器,服务器经过处理后发送到指定用户端,经协议解析后发送给应用层。应用层读取信息并显示给用户。 应用层运行设计:应用程序由系统开机时开启协议层进程,短信进程和电话簿进程;其中开启协议层进程时注册用户到服务器;和服务器建立连接;短信进程中建立接收线程,阻塞接收服务器短信服务信息。在调用发送函
15、数时,开启发送线程,发送完成结束发送线程。电话簿进程提供联络人信息。应用层运行步骤图:应用层数据结构:typedef struct msm/短信结构体 char phnoenum11; /存放电话号码 char time15;/存放时间字符串,将时间命名为文件名 char *message; /存放短信内容MSM;具体设计部分一、 服务器设计和分析(责任人:余刚)服务器应用层输入输出服务器输入项:协议层向服务器输入短信内容和目标号码和服务器名字。协议层向服务器输入传输过来短信包。服务器输出项:服务器向协议层输出短信内容和来信人地址,并向源用户端输出发送信息情况提醒。模块功效函数/*功效:该线程
16、获取当初时间,并检验失败队列每个节点时间戳,*若时间戳失效则删除该节点.*Struct list_fail_pack *head:失败队列头节点。*成功:1;失败:-1*/Int Over_time(Struct list_fail_pack *head);步骤图:/*功效:删除失败队列中某个节点。*Struct list_fail_pack *head :失败队列头节点。*Struct list_fail_packtemp:要删除节点。*返回值:成功返回1,失败返回-1*/Int del_failpack(Struct list_fail_pack *head,Struct list_fai
17、l_pack *temp);步骤图:/*函数功效:用户退出时删除注册表统计。*struct client head 注册表数组头地址;*pthread_id:要退出用户线程号。*成功:返回1;失败:-1*/Int del_login(struct client head,thread_t pthread_id)步骤图:/*函数功效:获取源地址。形参列表:struct client *head 注册表数组头地址。Unsigned Char *number:得到号码。Int Client_fd:用户套接字。返回值:成功:1;失败:-1*/ Int get_src_addr(struct clien
18、t *head, Unsigned Char *number,int client_fd);/*函数功效:获取目标地址。因为包内地址是用数组存放,所以 *要先取得号码长度len,在获取号码并将号码以字符串形式存放。*struct client_send_pdu temp :用户发送过来包节点。*Unsigned Char *dest_addr:取得目标地址。*成功为1;失败:-1*/ Int get_dest_addr(struct client_send_pdu *temp, Unsigned Char *dest_addr);步骤图:/*函数功效:获取消息内容*形参列表: struct c
19、lient_send_pdu temp /用户发送过来包节点。*char *message:获取消息;*返回值:成功:0;失败:-1*/Int get_message(struct client_send_pdu *temp ,char *message);/*功效:将用户地址,线程号,sock_fd放入struct client结构体中。*形参列表:head:注册表数组头地址,将新产生节点插入链表;*返回值flag:用来判定注册是否成功:1:成功,-1:失败*/Int login_user_list(struct client *head);步骤图:/*函数功效:发送信息后返回给用户信息.参
20、数:struct client_send_pdu *tmp要返回包。int flag=login_user_list().flag=1,将原包buffer改为success返回;flag=-1,将包buffer改为fail并将包发回对方*/Void Return_to_srcuser(struct client_send_pdu *tmp ,int flag)步骤图:/*函数功效:ser_recv()接收到包后,经过get_dest_addr取得目标地址*查看是否是发给服务器信息,还是发送给其它人.若是发送给服*务器,解析信息内容(a.点播;b.注册)。不然直接发出去。*参数:struct c
21、lient_send_pdu *tmp:协议发来包。*返回值:1:成功;-1:失败*/Int isfirst_login(struct client_send_pdu *tmp);步骤图:/*函数功效:将取得包发送给目标地址. 解析包取得目标地址,和*注册表里地址匹配,若有,取得fd并发送出去;若无,将包放入*Struct list_fail_pack失败链表中.*将要发送出去包结构体struct client_send_pdu *tmp。*目标地址:unsigned char *dest_addr*返回值:成功:1;失败:-1*/Int send_out(struct client_send
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 短信 网关 设计方案 报告
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。