上海易嵌
项目名称: 短信收发系统设计项目负责人: 汤汝
组员: 邵林、陈阳、余刚
目录
概要设计部分错误未定义书签。
一、设计需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
客户端要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
服务端要求错误未定义书签。
限制性需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
项目分配情况. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
二、体统总体结构图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
三、模块介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1.服务器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2 协议层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3. 应用层模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
详细设计部分. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
一、 服务器设计与分析负责人余刚 错误未定义书签。
服务器应用层输入输出错误未定义书签。
模块功能函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
二、协议层设计与分析(负责人:汤汝)错误未定义书签。
1.客户端注册模块错误未定义书签。
2.客户端数据处理模块:错误未定义书签。
.客户端打包解包模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.服务端收发模块错误未定义书签。
三、应用层设计与分析负责人:邵林、陈阳 错误未定义书签。
1 .各函数模块介绍错误未定义书签。
1.1短信设置模块错误未定义书签。
. 短信编辑模块错误未定义书签。
1.3短信操作模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4保存模块错误未定义书签。
2.视图模块对的构建. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1已发件箱. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.2 草稿箱模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
2. 写信箱错误未定义书签。
2.4发件箱模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
收件箱模块错误未定义书签。
2.6短信设置模块错误未定义书签。
2. 自定义文件夹模块错误未定义书签。
概要设计部分
一、设计需求
使用TCP/I协议模拟GS协议设计短信收发系统。
客户端要求
1.客户端第一界面为写短信,收件箱,发件箱,已发件箱,草稿箱,短信设置。用户可自定义文件夹。
2.写短信界面进入后需要输入收件人和短信内容,收件人可以从电话本模块中选择,也可以直接输入号码如输入号码和电话本中存在记录匹配,需直接显示为电话本中姓名输入完成后可进行发送操作或存入草稿箱。
3.收件箱中存储从网络端收到的短信,收件箱中的短信按照接受时间排序,未读短信需要被标识。对收件箱的操作包括删除短信包括单条删除多条删除和全部删除) ,显示短信数量,按发件人排序。单独对每个短信条目的操作包括删除,回复,转发,查看信息详情,将发件人保存至电话本将短信内容中号码保存至电话本,将短信条目移至自定义文件夹。
4.发件箱中保存正在发送中的短信如发送成功,则短信转存至已发件箱中。如发送失败,则短信仍保存在发件箱中。对发件箱的操作包括删除短信包括单条删除,多条删除和全部删除显示短信数量。单独对每个短信条目的操作包括删除,转发,发送。
5.已发件箱中保存发送成功的短信,对已发件箱的操作包括删除短信(包括单条删除,多条删除和全部删除) 显示短信数量,按收件人排序。单独对每个短信条目的操作包括删除转发,查看信息详情,将收件人保存至电话本。
6.草稿箱存储短信编辑的草稿对草稿箱的操作包括删除短信包括单条删除,多条删除和全部删除) ,显示短信数量。单独对每个短信条目的操作包括删除,发送。
7.自定义文件夹由用户定义,用户可定义自定义文件夹名称。对自定义文件夹的操作包括删除文件夹,删除短信包括单条删除,多条删除和全部删除) ,显示短信数量。对单条短信的操作同收件箱。用户可定义多个自定义文件夹。
8.短信设置中条目项为是否匿名发送 当前容量显示, 自定义文件夹管理,是否开启发送报告,短消息服务中心设置信息有效期短信黑名单功能。 自定义文件夹管理包括创建自定义文件夹,重命名自定义文件夹,删除自定义文件夹。服务端要求
服务器端需实现接收,存储和转发三种基本功能。另需根据MS协议标准实现延时发送,定时发送匿名发送,短信屏蔽功能。服务器端需启动守护进程。短信服务器
A、提供用户管理表
B、提供短信发送日志并通知是否到达客户手机
C、提供短信接收日志并响应客户端程序连接请求
D、短信内容服务可主要分为点播和订阅两张,点播类型随机发生,用户需要该信息临时点播,为一次性服务,订阅信息由用户定制订阅关系,服务方按时向全部订阅者发送同样的信息
E、手机用户在申请使用服务方所提供的信息服务前,需要注册。注册中要对手机用户进行验证,验证通过后注册成功
限制性需求
1短信字符编码要求根据MS协议实现。
2客户端电话本条数最大200条。客户端短信最大条目数为300条。最大条目数指所有短信文件夹内包括的条目数总量。服务器端存储容量不做限制。四安全性及可靠性需求
1 要求网络传输非明码传输并保证网络传输数据之可靠性。
2要求服务器端稳定安全。
要求客户端存储安全。
项目分配情况
二、体统总体结构图
三、模块介绍
1 .服务器
负责人:余刚
服务器设计为多线程程序,每次用户注册后创建线程为其提供服务。每次用户退出结束结束服务线程。服务器运行开启守护进程,负责写日志以及清理到期的发送失败短信。
其响应流程图如下
每次用户开机时都与服务端建立连接,检查服器失败队列中是否有自己的消息。服务器收到后保存该用户的id号到数组中,并记录总个数。当用户关机后服务器与他断开连接删除数组中的id号,并个数减一。
线程接收短信包后提取目的地址分析目的地址,设置源地址,转发;线程处理流程如下:
将本次信息删除本
接收模块:当用户发送信息报时,服务器接收并保存。
解析模块:将信息报的信息解析出来包括目的地址,源地址大小,内容存入结构体中。
发送模块:将结构体发送到目的地址。提供短信发送日志并通知是否到达客户手机
发送失败分析
1.若对方手机未开机,则服务器保存消息,等待用户开机后再发送。
2.若是网络问题则重新发送,并确认是否接受成功。
服务器数据结构:
S uct s t_fil_p ack*ead /失败队列头节点(全局)#dfine toa 1 /服务器能接受客户端的个数int cou 记录当前连接客户的个数
S t client{
Int c ien ;//套接字描述符
C har uer[12 ;/电话号码
thredt hreadid;//线程D
Struct cl ent*nex
} //用户连接时发送给服务器的结构体,记录用户信息
t t i t_hea{
S rut st_h d p v;
trc t lis _hed next;
}
S trc t a l_p ac k{
S ruc t lin_s edac tmp;
truct tim t mestam;
};/发送失败后保存的结构体
S uct list_filpck
Struct List_ed is _h;
Stuc fil_pac fpc;
};//建立失败内容链表
2.协议层
协议层分为客户端和服务器两种;总共有两个线程,其中接收线程一直存在系统中阻塞读取端口信息,接收到信息后解压解密后发送给应用层。发送线程由用户调用接口函数后开启发送线程,获得发送内容后压缩加密后再打包,发送至服务端。
S ruct c iensendpdu_ead{/客户发送数据包头部
Uns ned char ca 3];
Unsigned car pdu_type;
Unsined cha r;
ns igne h _len //目的地址长度
Unsiged har _type;
Un gned h d a[1 ];/目的地址
n ined char pid;
Unsiged c r cs;
Unsiged hr vp
Unsigned char udl //用户数据长度
};
Strct lien_rcvpdu_ a{/客户接收数据包头部
Unsiged chr sca[13]
nsined car pdu_typ ;
Uns gned char alen;//源地址长度
Unsige cha o_typ
Us ned char a[11];/源地址
Un ign har pi;
siged char dcs;
n ge cha scts[];
n igned chr udl;//用户数据长度
;
S trc c iet_snd_du{/客户端发送数据包
Struct cl et e _pduhead hea;
C ha bffer 140];
};
Struct c int_ec_ {/客户端接收数据包
Surt cl t_ecv_pdu_head d;
C r bfer[140];
}
协议层模块图
客户端协议层:
RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...
最近很多网站都遭受到了伪墙/假墙攻击,导致网站流量大跌,间歇性打不开网站。这是一种新型的攻击方式,攻击者利用GWF规则漏洞,使用国内服务器绑定host的方式来触发GWF的自动过滤机制,造成GWF暂时性屏蔽你的网站和服务器IP(大概15分钟左右),使你的网站在国内无法打开,如果攻击请求不断,那么你的网站就会是一个一直无法正常访问的状态。常规解决办法:1,快速备案后使用国内服务器,2,使用国内免备案服...
Pia云商家在前面有介绍过一次,根据市面上的信息是2018的开办的国人商家,原名叫哔哔云,目前整合到了魔方云平台。这个云服务商家主要销售云服务器VPS主机业务和服务,云服务器采用KVM虚拟架构 。目前涉及的机房有美国洛杉矶、中国香港和深圳地区。洛杉矶为crea机房,三网回程CN2 GIA,自带20G防御。中国香港机房的线路也是CN2直连大陆,比较适合建站或者有游戏业务需求的用户群。在这篇文章中,简...