APP下载

基于C#的CMPP3.0协议的实现与开发

2013-04-29梁丽丽,甄占坡

网友世界 2013年8期
关键词:日志网关内存

梁丽丽,甄占坡

【摘 要】目前拥有手机的人数越来越多,与手机相关的业务随之产生,如定制天气预报、手机终端发送精彩短信等,这些业务给人们的生活带来了便利。本文从CMPP3.0网关的性能需求、软件硬件环境、程序实现等方面介绍了基于C#的CMPP3.0协议的实现与开发。

【关键词】CMPP3.0;手机短信;SP

自3G网络在中国使用以来,截至2013年3月底,中国大陆手机用户总数达到113204.3万,1-2月全国移动短信业务量1576.1亿条,其中点对点短信量878.1亿条,移动互联网服务提供商向用户提供了在INTERNTE上注册个人信息,并定制新闻、财经、购物、天气预报等相关服务。移动的短信增值接口协议cmpp3.0协议是针对手机用户提供精彩短信内容的一个SP(短信增值业务)的接口协议,用来实现手机终端发送精彩短信的通道。

1.Cmpp3.0网关的性能需求

通过对手机短信增值业务的研究,结合SP运营商的一些再即时处理方面的要求,勾画出本系统的业务模型和功能模块的划分。本系统采用B/S架构,模块主要包括号码发送管理、系统参数管理网关下发流量管理、操作日志查询四个部分,其中部分内容如下:(1)下发流量管理:利用C#多线程创建两条链路进行下发,提高单位时间内下发的速度。(2)日志状态报告的管理:利用数据库的存储进行写入操作,把下发给用户的短信状态报告写入数据库中,提供给管理平台进行查询操作。(3)系统参数管理:利用windowsAPI函数去读ini文件的配置,来灵活连接,应对移动CMPP服务端更改服务端地址后,CMPP客户端方便及时调整。

2.软硬件环境要求

2.1 软件要求

主要包括操作系统、Internet信息服务器和.NET Framework等。

2.2 硬件配置

(1)CPU处理器:建议使用志强E5级处理器。(2)内存:针对操作系统NET Framework 3.5应用程序的有不同的内存要求,如Windows Server 2003:2G内存。(3)硬盘:系统驱动器上要求900MB的可用空间,安装驱动器上要求3.3GB的可用空间,可选的MSDN库文档,另外需要1.9GB的可用空间。

3.程序设计

主界面利用多线程来控制显示信息,如图1所示。

图1 主界面

3.1 cmpp3.0网关参数的初始化

程序在启动阶段加载硬盘上的gwcfg.ini配置文件,调用windows的API方法,主要有WritePrivateProfileString和GetPrivateProfileString两个方法。

3.2 实现发送过程中对发送流量的控制

利用socket网络字节流发送的时间和本地把要下发的消息组织成CMPP网络包体的时间和需要暂停的时间差计算出来,来控制精确的数据发送流量。主要代码如下:

DateTime d1=System.DateTime.Now;

SendMsg(src_num,mobile_num,ServiceType,content,linkid);

DateTime d2=System.DateTime.Now;

float dhm=(float)(d2-d1).TotalMilliseconds;

float smsproc=((float)1000/int.Parse(smssendproc))-dhm;

int sp=(int)Math.Round(smsproc,0);

if(sp>0){Thread.Sleep(sp);}

3.3 日志处理模块

创建一个日志类class Writelog和日志消息类class showmessage,其中为了控制日志文件的大小限定了2个条件,当文件记录时长为120秒时进行数据的保存。主要代码为:

logn++;

if(logn==1){

rq=System.DateTime.Now.ToString("yyyyMMddhhmmss");

ss=savepathstr+"smsgw"+rq+".log.tmp";

ssnew=ss.Replace(".tmp","");

sr=new StreamWriter(@ss,true);

content="";

}lock(writemsg){

if(writemsg.reportInfo!=""){

content=writemsg.reportInfo;

writemsg.reportInfo="";

sr.Write(content);

sr.Flush();}}

if(logn==120){

sr.close();

FileInfo filn=new FileInfo(ss);

if(filn.Length!=0){System.IO.File.Move(ss,ssnew);}

delewav(ss);

logn=0;}

sleep(1000);

4.结束语

通过系统和全面的分析,本文设计开发了基于.NET的SP的cmpp3.0业务网关客户端系统,设计的软件系统在功能上达到了SP对业务的设计要求,基本满足了中小型SP提供商的软件产品需要。

参考文献:

[1]Simon Robinson,K.Scott Allen等.C#高级编程[M].清华大学出版社,2002.

[2]Tom Archer.C#技术内幕[M].清华大学出版社,2002.

[3]沉舟.Microsoft.NET编程语言C#[M].希望电子出版社,2001.

[4]电脑编程技巧与维护杂志社.C#编程技巧典型案例解析[M].中国电力出版社,2005.

猜你喜欢

日志网关内存
一名老党员的工作日志
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
扶贫日志
“春夏秋冬”的内存
游学日志
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
一种基于粗集和SVM的Web日志挖掘模型