短信收发系统设计.docx

上传人:b****2 文档编号:1339337 上传时间:2022-10-20 格式:DOCX 页数:54 大小:928.15KB
下载 相关 举报
短信收发系统设计.docx_第1页
第1页 / 共54页
短信收发系统设计.docx_第2页
第2页 / 共54页
短信收发系统设计.docx_第3页
第3页 / 共54页
短信收发系统设计.docx_第4页
第4页 / 共54页
短信收发系统设计.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

短信收发系统设计.docx

《短信收发系统设计.docx》由会员分享,可在线阅读,更多相关《短信收发系统设计.docx(54页珍藏版)》请在冰豆网上搜索。

短信收发系统设计.docx

短信收发系统设计

项目设计报告

上海易嵌

项目名称:

短信收发系统设计

项目负责人:

汤汝

项目时间:

组员:

邵林、陈阳、余刚

概要设计部分3

一、设计需求3

客户端要求3

服务端要求3

限制性需求4

项目分配情况4

二、体统总体结构图5

三、模块介绍5

1.服务器5

2.协议层8

3.应用层模块11

详细设计部分13

一、服务器设计与分析(负责人:

余刚)13

服务器应用层输入输出13

模块功能函数13

二、协议层设计与分析(负责人:

汤汝)24

1.客户端注册模块24

2.客户端数据处理模块:

28

3.客户端打包解包模块31

4.服务端收发模块32

三、应用层设计与分析(负责人:

邵林、陈阳)35

1.各函数模块介绍35

1.1短信设置模块35

1.2短信编辑模块38

1.3短信操作模块39

1.4保存模块42

2.视图模块对的构建45

2.1已发件箱45

2.2草稿箱模块46

2.3写信箱47

2.4发件箱模块48

2.5收件箱模块48

2.6短信设置模块49

2.7自定义文件夹模块50

概要设计部分

、设计需求

使用TCP/IP协议模拟GSM协议设计短信收发系统

客户端要求

1.客户端第一界面为写短信,收件箱,发件箱,已发件箱,草稿箱,短信设置。

用户可自定义文件夹。

2.写短信界面进入后需要输入收件人和短信内容,收件人可以从电话本模块中选择,也可以直接输入号码,如输入号码和电话本中存在记录匹配,需直接显示为电话本中姓名,输入完成后可进行发送操作或存入草稿箱。

3.收件箱中存储从网络端收到的短信,收件箱中的短信按照接受时间排序,未读短信需要被标识。

对收件箱的操作包括删除短信(包括单条删除,多条删除和全部删除),显示短信数量,按发件人排序。

单独对每个短信条目的操作包括删除,回复,转发,查看信息详情,将发件人保存至电话本,将短信内容中号码保存至电话本,将短信条目移至自定义文件夹。

4.发件箱中保存正在发送中的短信,如发送成功,则短信转存至已发件箱中。

如发送失败,则短信仍保存在发件箱中。

对发件箱的操作包括删除短信(包括单条删除,多条删除和全部删除),显示短信数量。

单独对每个短信条目的操作包括删除,转发,发送。

5.已发件箱中保存发送成功的短信,对已发件箱的操作包括删除短信(包括单条删除,多条删除和全部删除),显示短信数量,按收件人排序。

单独对每个短信条目的操作包括删除,转发,查看信息详情,将收件人保存至电话本。

6.草稿箱存储短信编辑的草稿,对草稿箱的操作包括删除短信(包括单条删除,多条删除和全部删除),显示短信数量。

单独对每个短信条目的操作包括删除,发送。

7.自定义文件夹由用户定义,用户可定义自定义文件夹名称。

对自定义文件夹的操作包括删除文件夹,删除短信(包括单条删除,多条删除和全部删除),显示短信数量。

对单条短信的操作同收件箱。

用户可定义多个自定义文件夹。

8.短信设置中条目项为是否匿名发送,当前容量显示,自定义文件夹管理,是否开启发送报告,短消息服务中心设置,信息有效期,短信黑名单功能。

自定义文件夹管理包括创建自定义文件夹,重命名自定义文件夹,删除自定义文件夹。

服务端要求

服务器端需实现接收,存储和转发三种基本功能。

另需根据SMS*议标准实现延时发送,定时发送,匿名发送,短信屏蔽功能。

服务器端需启动守护进程。

短信服务器:

A、提供用户管理表

B、提供短信发送日志并通知是否到达客户手机

C、提供短信接收日志并响应客户端程序连接请求

D短信内容服务可主要分为点播和订阅两张,点播类型随机发生,用户需要该信息临时点播,为一次性服务,订阅信息由用户定制订阅关系,服务方按时向全部订阅者发送同样的信息

E、手机用户在申请使用服务方所提供的信息服务前,需要注册。

注册中要对手机用户进行验证,验证通过后注册成功

限制性需求

1短信字符编码要求根据SMSft、议实现。

2客户端电话本条数最大200条。

客户端短信最大条目数为300条。

最大条目数指所有短信文件夹内包括的条目数总量。

服务器端存储容量不做限制。

四安全性及可靠性需求

1要求网络传输非明码传输,并保证网络传输数据之可靠性。

2要求服务器端稳定安全。

3要求客户端存储安全。

项目分配情况

责任人

任务

备注

汤汝

总体设计报告,协议层的设计报告,以及实现与调试,应用层电话簿功能实现。

确保协议层的实现,负责审核各个模块的设计,提供参考性意见。

余刚

服务器设计报告,服务器的实现与调试。

确保服务器的稳定安全。

陈阳、邵林

应用层设计报告,应用层的实现与调试。

良好的界面控制,程序的稳定与安全。

全体成员

对项目进行综合性调试与测试。

确保实现基本功能的前提卜进行版本的升级。

、体统总体结构图

三、模块介绍

1.服务器

负责人:

余刚

服务器设计为多线程程序,每次用户注册后创建线程为其提供服务。

每次用户退出结束结束服务线程。

服务器运行开启守护进程,负责写日志以及清理到期的发送失败短信。

其响应流程图如下:

守护进程

每次用户开机时都与服务端建立连接,检查服器失败队列中是否有自己的消息。

服务器收到后保存该用户的id号到数组中,并记录总个数。

当用户关机后,服务器与他断开连接,删除数组中的id号,

并个数减一。

线程接收短信包后提取目的地址,分析目的地址,设置源地址,转发;线程处理流程如下:

接收模块:

当用户发送信息报时,服务器接收并保存。

解析模块:

将信息报的信息解析出来(包括目的地址,源地址,大小,内容)存入结构体中。

发送模块:

将结构体发送到目的地址。

提供短信发送日志并通知是否到达客户手机

发送失败分析:

1.若对方手机未开机,则服务器保存消息,等待用户开机后再发送。

2.若是网络问题则重新发送,并确认是否接受成功。

服务器数据结构:

Structlist_fail_pack*head//失败队列头节点(全局)

#definetotal100//服务器能接受客户端的个数

intcount记录当前连接客户的个数

Structclient{

Intclient_fd;//套接字描述符

Charnumber[12];〃电话号码

Pthread_tthread」d;/线程ID

Structclient*next;

};//用户连接时发送给服务器的结构体,记录用户信息

Structlist_head{

Structlist_head*prev;

Structlist_head*next;

};

Structfail_pack{

Structclient_send_packtmp;

Structtimetimestamp;

};//发送失败后保存的结构体

Structlist_fail_pack{

StructList_headlist_h;

Structfail_packf_pack;

};//建立失败内容链表

2.协议层

协议层分为客户端和服务器两种;总共有两个线程,其中接收线程一直存在系统中阻塞读取端口信息,接收到信息后解压解密后发送给应用层。

发送线程由用户调用接口函数后开启发送线程,获得发送内容后压缩加密后再打包,发送至服务端。

Structclient_send_pdu_head{/客户发送数据包头部

Unsignedcharsca[13];

Unsignedcharpdu_type;

Unsignedcharmr;

Unsignedcharda_len;/目的地址长度

Unsignedcharda_type;

Unsignedcharda[11];〃目的地址

Unsignedcharpid;

Unsignedchardcs;

Unsignedcharvp;

Unsignedcharudl;//用户数据长度

};

Structclient_recv_pdu_head{//客户接收数据包头部

Unsignedcharsca[13];

Unsignedcharpdu_type;

Unsignedcharoa_len;/源地址长度

Unsignedcharoa_type

Unsignedcharoa[11];//源地址

Unsignedcharpid;

Unsignedchardcs;

Unsignedcharscts[7];

Unsignedcharudl;//用户数据长度

};

Structclient_send_pdu{〃客户端发送数据包

Structclient_send_pdu_headhead;

Charbuffer[140];

};

Structclient_recv_pdu{〃客户端接收数据包

Sturctclient_recv_pdu_headhead;Charbuffer[140];

};

协议层模块图:

客户端协议层:

手机开机,开启协

议层进程

 

服务端协议层:

服务器协议需要修改数据包头部信息,在将发送用户填充到源地

址里去;

开启用户

服务线程

服务器调用发

送函数

开启发送线程

拷贝到服务器

客户端协议层接口:

/*应用层发送接口*/

Unsignedintapp_send(constchar*app_buf,\size_tbuf_len,constchar*number);

/*应用层接收接口*/

Unsignedintapp_recv(char*app_buf,size_tbuf_len,char*number);

服务器协议层接口:

/*服务器发送接口*/

Unsignedintser_send(intdest_sockfd,\

structclient_recv_pdu*temp,\size_ttemp_size,\constchar*src_number);

/*服务器接收接口*/

Unsignedintser_recv(intsrc_sockfd,\

structclient_send_pdu*temp,\

size_ttemp_size);

3.应用层模块

短信系统设计

短信应用层概要流程图。

应用层包括收件箱、写短信、发件箱、草稿箱、已发件箱、短信设置和私密信箱(自定义文件夹)七大功能,每个功能有各自的子功能。

应用层通过两个进程进行短信收发及其它信息的传递。

应用层将短信信息及各种标志传递给协议层,协议层经过处理发送给服务器,服务器通过处理后发送到指定客户端,经协议解析后发送给应用层。

应用层读取信息并显示给用户。

开始

开启收接

线程

菜单选项

结束

应用层运行设计:

应用程序由系统开机时启动协议层进程,短信进程和电话簿进程;其中启动协议层进程时注册用户到服务器;与服务器建立连接;短信进程

中建立接收线程,阻塞接收服务器短信服务信息。

在调用发送函数时,

启动发送线程,发送完毕结束发送线程。

电话簿进程提供联系人信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1