轻松学习C#开发CMPP2.0协议网关-1

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

首先在学习开发C#CMP2.0网关之前,我们首先先要了解,开发CMPP2.0网关需要重点考虑的几点问题,以及简单的说明下CMPP2.0协议。

CMPP2.0协议

CMPP2.0协议采用TCP/IP的通讯协议,开发时一般采用长连接的模式,其封装的协议包主要包括:

1、登录协议包

2、登录应答协议包

3、短信发送协议包

4、短信发送应答协议包

5、上行消息/状态报告协议包

6、上行消息/状态报告应答协议包

7、心跳连接协议包

8、心跳连接应答协议包

每一个协议包都包含消息头与消息体。

CMPP2.0协议网关开发注意问题

1、SP连接移动运营商网关的TCP连接数一般在15个连接,开发的CMPP2.0网关应能支持指定数的连接,在连接崩溃后能够自动恢复连接。

2、重发机制,每一条MT消息在发送后,等待60S后还未收到响应,应再次提交发送,发送3(可配置)次后均未收到响应,可视为链路中断,恢复链路连接,并重新提交MT消息,MT消息不能抛弃。如链路正常可把MT消息滞后发送。

3、心跳连接机制,为每个TCP连接,要建立心跳线程,一般采用60s-100s,在无MT消息后启用心跳线程来维持链路连接,连续2次心跳后均无应答应恢复链路连接。

4、CMPP滑动窗口限制,单次并发量限制在16条,待应答完毕后,再次并发。

5、数据缓存问题,网关发送的MT消息,存放在缓存中

轻松学习C#开发CMPP2.0协议网关2 登录协议包定义 消息体包括: 字段名 字节数 属性 描述 Source_Addr  6 Octet String 源地址,此处为SP_Id,即SP的企业代码。 AuthenticatorSource 16 Octet String 用于鉴别源地 阅读详情

相关推荐

轻松学习C#开发CMPP2.0协议网关-4

大家通过上面3讲应当已经对协议包的封装、解析有了了解。 2、登录应答协议包 3、短信发送协议包 4、短信发送应答协议包 5、上行消息/状态报告协议包 6、上行消息/状态报告应答协议包 7、心跳连接协议包 8、心跳连接应答协议包 剩下这些协议包的封装与解析都类似与登录。 这里要重点讲解的是长短信的封装; 长短信实现  长短信最主要就是在短信内容前加了一个协议头。同时将submi

龙_飞博客 1997

CMPP.rar_CSharp cmpp_cmpp_cmpp 2.0 C#_短信网关_网关

C#开发的短信网关程序,曾经跟移动网关联调过

CMPP 2.0 C#短信网关开发实战

本文还有配套的精品资源,点击获取 简介:CMPP协议是中国移动通信公司为SP提供的基于TCP/IP的数据通信协议,支持短信等业务。本项目是基于C#实现的CMPP 2.0短信网关程序,提供了稳定高效的短信发送、接收、查询等功能。实现该协议需要掌握TCP/IP通信、协议解析封装、多线程、异步编程、错误处理、日志记录、数据库操作、安全性和接口设计等关键技术。通过学习这个项目,开发...

weixin_33256096的博客 1668

cmpp2_cmpp2客户端和服务端测试工具_

CMPP2服务端和客户端模拟程序,能帮助开发人员进行cmpp2协议测试!

CMPP2.0 C# 版本(亲测可用)

CMPP2.0 C# 版本(亲测可用) VS2012工程,带测试程序。 CMPP2.0 C# 版本(亲测可用) VS2012工程,带测试程序。

轻松学习C#开发CMPP2.0协议网关-3

登录应答协议包定义 字段名 字节数 属性 描述 Status 1 Unsigned Integer 状态 0:正确 1:消息结构错  2:非法源地址  3:认证错  4:版本太高   5~ :其他错误 AuthenticatorISMG 16 Oct

龙_飞博客 2613

java cmpp_cmpp2.0-java 基于cmpp2.0用java实现短信的收发(Sending and receiving SMS by Java based on CMPP2.0) -...

压缩包 : fdce09c27c786c0d09ec30759adeb29.zip 列表cmpp2/cmpp2/.classpathcmpp2/.projectcmpp2/.settings/cmpp2/.settings/org.eclipse.jdt.core.prefscmpp2/bin/cmpp2/bin/MsgConfig.propertiescmpp2/bin/Test.classcm...

weixin_39866857的博客 872

CMPP3与CMPP2的区别

1.        获取CMPP3.0接口api以及使用说明SP在做接口测试及改造前需要获取相应版本的CMPP3.0接口的api以及使用说明,这些资料可以通过向各个接入网关厂家索取如果SP有能力自行开发api,那么可以自行开发,只要符合cmpp3.0规范即可,不过需要提行大家注意的是,在现网里面很多数据异常的情况比如断连、收发量减少等情况很有可能是由于api使用不当引起。2.     

csqcyit的专栏 5403

CMPP2模拟网关:短信服务开发与测试指南

本文还有配套的精品资源,点击获取 简介:CMPP2模拟网关是中国移动提供的用于测试短信服务应用程序的工具,允许开发者在不影响真实网络的情况下模拟短信发送和接收流程。CMPP2.0协议为开发者提供了包括消息提交、接收、查询和取消等在内的功能,支持高效数据传输和错误处理。开发者可以利用模拟网关进行压力测试、故障模拟和便捷调试,并通过深入理解连接管理、消息编码、事务处理、消息跟踪...

weixin_42594427的博客 1810

cmpp2.0移动短信网关c#源代码

源代码,学习用。 public delegate void ReportEventHandler(object sender, ReportEventArgs e); //声明一个事件的指代(指针) public delegate void SMSEventHandler(object sender, SMSEventArgs e); //声明一个事件的指代(指针) public delegate void TerminateEventHandler(object sender, TerminateEventArgs e); //声明收到终止信号 public delegate void TerminateRespEventHandler(object sender, TerminateRespEventArgs e); //回应事件发生 public delegate void TestEventHandler(object sender, TestEventArgs e); public delegate void TestRespEventHandler(object sender, TestRespEventArgs e); public delegate void ConnectRespEventHandler(object sender, ConnectRespEventArgs e); public delegate void CancelRespEventHandler(object sender, CancelRespEventArgs e); public delegate void SubmitRespEventHandler(object sender, SubmitRespEventArgs e); public delegate void QueryRespEventHandler(object sender, QueryRespEventArgs e); public delegate void LogonSuccEventHandler(object sender, EventArgs e); //当成功登录系统 public delegate void SocketClosedEventHandler(object sender, EventArgs e); //当套接字被检测到关闭 public delegate void FailedItemDeletedEventHandler(object sender, WaitingQueueItemEventArgs e); //当一条等待队列的消息超过60秒没有回应

cmpp3.0 c#开发

cmpp3.0 c#开发源码 测试通过

CMPP 2.0 C# 源码

CMPP 2.0C#源代码,在多个工程项目中实际使用过,稳定可靠

中国移动CMPP2.0协议

中国移动CMPP2.0协议,标准版,供下载参考

CMPP协议的客户端c#实现代码

using System;using System.Security.Cryptography;  using System.Net.Sockets; using System.Net;using System.Text; using System.Threading; using System.Collections; namespace CMPP.YOURCOMPANY{ public del

天体浴场 3420

中国移动通信互联网短信网关接口协议CMPP2.0(普通文本短信、二进制数据短信)

本文用的是中国移动通信互联网短信网关接口协议CMPP2.0,参考华为smproxy.jar包并进行了一些问题的修复和封装。 一、华为smproxy.jar包存在乱码问题: 1、提交短信 CMPP_Connect_REP----->AuthenticatorISMG CMPP_Submit_REP------->Msg...

花花世界芸芸众生的博客 4758

协议研发 中移动CMPP2.0协议API

前段时间,一直忙于公司的短信接口的研发;虽然总是忙,但还是非常有收获的。从短信开接口的研发中也碰到不少问题,相信和我相同,大家在研发网关接口时也会有不少问题会碰到的:比如,采用移动提供的API出错,不同的编码,计费拔测,接收问题等。其实对于自己的上层领导来说,他所要的是结果,致于研发过程中你所遇见的各种问题都是自己去解决的,不懂就上网找,或说问一下有这方面研发经验的朋友或同学。正是由于不同的研发人...

蝶飞鸿云 志化燕雀(http://jxnuprk.cnblogs.com/) 579

中国移动短信网关CMPP3.0 C#源代码:数据包定义

关于联合CMPP定义的各种数据包采用C语言中的联合(Union)来处理是最有效率的,因为接收和发送的是一个字节数组,使用联合可以方便地在字节数组和数据包结构之间转换。C#本身并不支持联合,但可以使用P/Invoke(平台封送调用)机制实现类似于联合的结构。在定义CMPP数据包时,我为每个数据包结构定义了Init函数(用于将字节数组转换为数据包结构)和GetBuffer函数(用于将数据包结构转换为字

[木子]的专栏 3266

CMPP SP端 C# 实例

//附CMPPClient.cs:/*作者:TNT 时间:2003年12月文件说明:本文件实现SP端的协议开发。*/using System;using System.Security.Cryptography;  using System.Net.Sockets; using System.Net;using System.Text; using System.Threading; using

shanhe的专栏 1万+
上一篇: NET MVC DropDownList使用
下一篇: 轻松学习C#开发CMPP2.0协议网关-2
瞌睡龙飞
博客等级 码龄18年 9粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值