`
逆风的香1314
  • 浏览: 1399873 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

协议开发 中移动CMPP2.0协议API(四)

阅读更多
 

接上篇:

 

八、链路检测

        根据CMPP协议当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接,并根据需要重新建立链接(T=60秒,N=3)。但也可以加快链路检测的速度;这个并不影响API的正常运行:

       

        在线程中添加一个检测的事件,当检测到要发送链路检测时,触发链路检测线程:

               //要链路检测测试( 链路是每30秒发送一次数据 )

        if( _pscoket->_needacttest > 0 || _pscoket->_lastacttime <= ( time( NULL ) - 30 ))

        {

            _pscoket->_lastacttime = time( NULL ) + 1 ;

            SetEvent( _pscoket->_hevnt_acti ) ;

        }

 <!----><o:p></o:p>

               //链路检测线程部分代码:

if( WaitForSingleObject( _pscoket->_hevnt_acti, _pscoket->_dwmsec ) == WAIT_OBJECT_0 )

        {

            try

            {

                err = _pscoket->_ActiveTest() ;

            }

            catch( ... )

            {

}

 <o:p></o:p>

//根据发送链路检测结果来作进一步动作

if( err != 0 )

{

//重发可断开链接,重新初始SOCKET接口等

………….

           }

 <o:p></o:p>

致此,我基本上已把整个CMPP协议的开发过程写完,中间还附带了部分代码,希望对大家有所帮助,如果有什么不明的也可以直接写邮件到我的邮箱           jimzj@21cn.com,我将为你解答一些CMPP开发中的问题或者是计费拔测碰到的字段设置的问题(可以是移动梦网,联通在线或电信巨龙)。

 <o:p></o:p>

九、短信二次开发

 <o:p></o:p>

另外对于没有申请到移动或联通短信接口的用户,可以通过提供的一套

API接口,可以快速的通过此API接口发送短信息:开发包包括以下内容:

50、文件说明

目录名<o:p></o:p>

子目录名<o:p></o:p>

文件名<o:p></o:p>

功能说明<o:p></o:p>

BGAPI

Exam_BC

 <o:p></o:p>

BCB例程

Exam_VC

 <o:p></o:p>

VC例程

 <o:p></o:p>

FuncDef.cpp

动态库调用cpp文件

 <o:p></o:p>

FuncDef.h

动态库调用h文件

 <o:p></o:p>

BGAPI.Dll

动态库

 <o:p></o:p>

短信API客户端开发使用说明.doc

说明文档

大家如果要下载这个开发包,可以到www.ebase168.com上的短信快车主页面中的二次开发就可以下载,测试。所附带的两个例程中已有登录用户的企业名称和密码,通过这个API用户还可以自已做一个企业服务器,再下带10万个客户端,这样去开发自己的客户群。

 <o:p></o:p>

开发所要的几个接口的定义:

51初始化API函数

函数名:_IFInitInterface()

功能:完成初始化的工作;

1)、系统资源的初始化:系统资源的创建和设置;定时资源的设置;通信消息机制的设置;内存管理的初始化设置;

2)、通信参数初始化:包括服务器端IP地址;客户端器端IP地址;通信端口号;

3)、尝试连接;

返回: 0 成功

       1 参数 fCltDeliver 不能为空

       2 参数 fCltSmsStatus 不能为空

       3 初始化异常

       99 系统错误

说明:<o:p></o:p>

参数中的所要的回调函数用于在接收到中心服务器下发的短信或短信状态是调用,用户应在接收到后,把信息保存后尽快返回一个0表示成功接收到短信或状态,不要在回调函数中直接处理信息或状态,以免影响接收的速度;回调函数的定义请参见FuncDef.h中的定义;

 <o:p></o:p>

52登录注册函数

函数名:_Login()

功能:完成向中心服务器注册的工作;

1)、检测用户参数是否正确;

2)、向中心服务器发出一个注册指令;

返回: 0 登录已提交

       1 未初始化

       2 企业代码 <= 0

3 用户名称 <= 0

 <o:p></o:p>

53短信提交

函数名:_Submit()

功能:向中心服务器提交一条短信息;

1)、检测用户提交的参数是否正确;

2)、向中心服务器发出短信提交指令;

说明:

返回: 0 提交成功

       1 未初始化

       2 未注册

       3 注册接收地址有误

       4 原始编码 <= 0

       5 源地址含有非法字符(只能空或数字)

       6 源地址长度 > 5

       7 目标地址含有非法字符(只能数字)

       8 目标地址 < 11

       9 编码 < 0

       10 数据长度 <= 0

       11 中文 > 65个字符 英文 > 130个字符

       12 流量限制 <= 100/

 13发送失败

 <o:p></o:p>

57接收短信息回调函数

函数名:TProcGetDeliver()

功能:用来接收中心服务器下发的短信;

1)、接收短信息;

返回: 0 客户端成功接收

    

说明:<o:p></o:p>

       回调函数用于在接收到中心服务器下发的短信,用户应在接收到后,把信息保存后尽快返回一个0表示成功接收到短信,不要在回调函数中直接处理信息,以免影响接收的速度;回调函数的定义请参见FuncDef.h中的定义;

 <o:p></o:p>

58接收短信状态回调函数

函数名:TProcGetSmsStatus()

功能:用来接收中心服务器下发的状态;

1)、接收注册回应;

2)、接收通讯测试状态

3)、接收提交短信返回状态

4)、接收短信回应状态

返回: 0 客户端成功接收

    

说明:<o:p></o:p>

       回调函数用于在接收到中心服务器下发的状态,用户应在接收到后,把信息保存后尽快返回一个0表示成功接收到状态,不要在回调函数中直接处理信息,以免影响接收的速度;回调函数的定义请参见FuncDef.h中的定义;

分享到:
评论

相关推荐

    中国移动短信CMPP 2.0协议API

    中国移动短信CMPP 2.0协议API是一种专用于短信服务的通信协议,广泛应用于移动通信领域,特别是企业级应用,如验证码发送、信息推送等。该协议基于TCP/IP,为服务提供商提供了高效、稳定且安全的短信发送和接收功能...

    中国移动短信网关模拟器支持cmpp2.0

    中国移动短信网关模拟器是为开发者和测试人员提供的一种工具,它能够模拟中国移动的CMPP2.0协议,用于测试和验证短信应用的正确性和效率。CMPP2.0(China Mobile Short Message Peer-to-Peer Protocol version 2.0)...

    cmpp2.0模拟短信网关

    总的来说,这个“cmpp2.0模拟短信网关”是开发和测试短信服务功能的强大工具,通过它,开发者可以在本地环境中模拟真实的短信通信场景,进行功能验证和性能测试,从而提高应用的稳定性和用户体验。在使用过程中,...

    CMPP 2.0 C# 源码

    CMPP(China Mobile Peer-to-Peer)是一种由中国移动制定的通信协议,主要用于短信服务,包括短信提交、查询、接收和报告等操作。CMPP 2.0是该协议的一个版本,它在CMPP 1.0的基础上进行了优化和增强,提高了系统的...

    CMPP2.0、3.0网关以及蓝杰网关代码

    CMPP2.0和CMPP3.0是该协议的不同版本,分别对应不同的功能需求和性能优化。 CMPP2.0是早期的版本,它支持基本的短信业务,如点对点短信、群发短信、短信状态报告等。CMPP2.0协议主要由以下几个关键部分组成: 1. ...

    CMPP2.0实现

    包含接口API与测试工程: 主目录下是详细使用手册.接口文件放在API文件夹中. Demo Project中包含两个示例工程. 一个是模拟网关的源码--“CMPPGateway” 一个是SP连接网关的示例代码--“SPClient”

    CMPP2.0JAVA调用

    CMPP2.0是China Mobile Packet Protocol的2.0版本,是中国移动为了高效地处理大量短信业务而设计的一种协议。这个协议主要用于SP(Service Provider)与SMSC(Short Message Service Center,短信服务中心)之间的...

    使用mina框架实现cmpp2.0服务端

    3. **协议解析**:设计CMPP2.0协议的解码器(Decoder)和编码器(Encoder),将原始的字节流转换为业务对象,反之亦然。这通常涉及到对CMPP协议报文结构的深入理解,包括报文头、消息ID、业务类型等字段。 4. **...

    CMPP API

    CMPP(China Mobile Short Message Peer-to-Peer Protocol)是中国移动制定的一种高效、可靠的点对点短消息传输协议,它分为CMPP2.0和CMPP3.0两个版本,分别对应不同的功能需求和性能优化。 在描述中提到,该API...

    移动企信通客户端cmpp2

    在这个项目中,开发者使用C#语言实现了CMPP2.0协议的客户端,使得开发者可以通过编程接口(API)方便地向中国移动的短信网关发送和接收短信。这个客户端可能包含以下关键组件: 1. **连接管理模块**:负责建立和...

    东软CMPP3.0 短信网关API

    CMPP(China Mobile Peer to Peer)是基于TCP/IP协议的通信协议,而CMPP3.0是其最新的版本,它在CMPP2.0的基础上进行了优化和扩展,以适应更加复杂和庞大的业务需求。 CMPP3.0的核心知识点包括: 1. **协议结构**...

    CMPP20模拟网关

    1. **协议仿真**:CMPP20模拟网关能够精确地模拟中国移动的CMPP2.0服务器行为,包括连接管理、消息传输、错误处理等,帮助开发者在本地环境中进行功能测试和性能优化。 2. **消息模拟**:支持发送和接收各种CMPP2.0...

    cmpp发短信

    1. CMPP2.0:这是早期的CMPP版本,主要用于处理SP与移动网关之间的短消息交互。它定义了多个命令,如连接、断开、提交短信、查询短信状态、接收短信等。CMPP2.0的消息结构相对简单,主要通过固定长度的字段来定义...

    移动短信开发(华为软件包)

    本文将详细解析SMproxy网关及其在移动短信开发中的应用,以及如何结合CMPP2.0模拟网关进行上行和下行操作。 首先,SMproxy是华为提供的一个短信服务代理,它在短信业务系统中起着承上启下的作用。作为服务器端,...

    vc开发的cmpp网关程序

    它包括多个版本,如CMPP2.0和CMPP3.0,主要包含连接建立、消息发送、接收、心跳检测等功能。CMPP协议包含多种消息类型,如CMPP_SUBMIT用于提交短信,CMPP_DELIVER用于接收短信等。 2. **VC++和MFC**:VC++是微软的...

    cmpp3.0协议类及文档

    CMPP3.0协议是中国移动通信集团为了支持大规模的短信业务而...总的来说,理解并掌握CMPP3.0协议对于开发与中国移动短信服务相关的应用至关重要,它可以帮助开发者构建稳定、高效的短信系统,满足大规模短信业务的需求。

    WINCE 下SMS网关协议,编程实例

    SGIP1.2和CMPP2.0分别是这两个协议的最新版本,文档中的sgip12.doc和CMPP2.0.doc可能包含了这些协议的详细规范和实现指南。 2. **SGIP1.2协议** SGIP1.2是由中国通信标准化协会制定的,用于SMSC(Short Message ...

    中国移动通信CMPP3.0短消息网关开发接口库 4.0

    CMPP(China Mobile Peer-to-Peer)3.0协议是CMPP2.0的升级版,主要改进了协议的安全性、可靠性和效率。该协议定义了SP(Service Provider,服务提供商)与SCP(Service Control Point,服务控制点)之间的接口,...

    cmppGuiClient.zip

    在这个项目中,我们以"cmppGuiClient.zip"为载体,探讨了一个由Java语言编写的GUI(图形用户界面)实现的CMPP2.0协议客户端程序。 首先,该项目的核心是实现了CMPP2.0协议。该协议主要包含以下关键部分: 1. 连接...

    华为 短信API 综合网关

    CMPP(China Mobile Packet Protocol)是中国移动制定的一种适用于大规模短信业务的协议,其中CMPP2.0和CMPP3.0是其两个主要版本。CMPP2.0主要适用于单向的短信服务,如验证码发送、营销短信等,而CMPP3.0则在2.0的...

Global site tag (gtag.js) - Google Analytics