中国移动短信网关CMPP3.0 C#源代码:事件定义及相关工具函数

转载 2006年06月07日 09:09:00
using System;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;
using System.Collections;
using System.Diagnostics;
namespace Tiray.SMS
{
 //事件参数定义
 public class SMSEventArgs:EventArgs
 {
  SMS_STATE m_State;
  Object m_Data;
  DateTime m_dtTime;

  public SMS_STATE State
  {
   get{return m_State;}
   set{m_State=value;}
  }

  public object Data
  {
   get{return m_Data;}
   set{m_Data=value;}
  }
  public DateTime Time
  {
   get{return m_dtTime;}
   set{m_dtTime=value;}
  }

 }
 //事件处理函数
 public delegate void SMSEventHandler(object sender,SMSEventArgs e);
 
 //异步事件回调函数
 public delegate void SMSAsyncEvent(SMSEventArgs e);

 public class Utility
 {
  public static String Decode(Byte[] buf,int StartIndex,int Length,CODING Coding)
  {
   String str=String.Empty;
   if(Coding==CODING.ASCII)
    str=System.Text.Encoding.ASCII.GetString(buf,StartIndex,Length);
   
   else if(Coding==CODING.UCS2)
    str=System.Text.Encoding.BigEndianUnicode.GetString(buf,0,Length);
   else if(Coding==CODING.GBK)
    str=System.Text.UnicodeEncoding.GetEncoding("gb2312").GetString(buf,StartIndex,Length);
   return str;
  }
  public static Byte[] Encode(String str,CODING coding)
  {
   Byte[] buf=null;
   if(str==null)
    return buf;
   if(coding==CODING.ASCII)
    buf=System.Text.Encoding.ASCII.GetBytes(str);
   else if(coding==CODING.UCS2)
    buf=System.Text.Encoding.BigEndianUnicode.GetBytes(str);
   else if(coding==CODING.GBK)
    buf=System.Text.UnicodeEncoding.GetEncoding("gb2312").GetBytes(str);

   return buf;

  }
  public static UInt32 CountLength(String str,CODING coding)
  {
   Byte [] buf=Encode(str,coding);
   if(buf!=null)
    return (UInt32)buf.Length;
   else
    return 0;
  }

  public static Byte[] IntToNetBytes(object obj)
  {
   Byte[] bytes=null;
   if(obj.GetType()==System.Type.GetType("System.UInt32"))
   {
    UInt32 val=(UInt32) obj;
    bytes=BitConverter.GetBytes(val);
   }
   if(obj.GetType()==System.Type.GetType("System.UInt64"))
   {
    UInt64 val=(UInt64) obj;
    bytes=BitConverter.GetBytes(val);
   }

   if(bytes!=null)
    System.Array.Reverse(bytes);

   return bytes;

  }
  public static object NetBytesToInt(Byte[] bytes,int index,int length)
  {
   Array.Reverse(bytes,index,length);
   if(length==4)
    return BitConverter.ToUInt32(bytes,index);
   else if(length==8)
    return BitConverter.ToUInt64(bytes,index);
   else
    return 0;
  }
 }

}

【待续】

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

关于联合CMPP定义的各种数据包采用C语言中的联合(Union)来处理是最有效率的,因为接收和发送的是一个字节数组,使用联合可以方便地在字节数组和数据包结构之间转换。C#本身并不支持联合,但可以使用P...
  • bulbul2006
  • bulbul2006
  • 2006年06月07日 09:08
  • 2639

基于C#开发的中国电信SMGP短信网关

  • 2009年05月06日 18:20
  • 742KB
  • 下载

中国移动短信网关CMPP3.0 C#源代码:使用示例

Using Tiray.SMS...Tiray.SMS.CMPP30 m_CMPP=new Tiray.SMS.CMPP30();...//启动CMPPm_CMPP=new CMPP30(txt_CM...
  • bulbul2006
  • bulbul2006
  • 2006年06月07日 09:10
  • 5678

用CMPP3.0实现物联网卡通讯

当下物联网发展迅猛,物联网卡可以接受短信指令,实现千里之外尽可掌控。本人做过一个这类项目,把相关经验记录下来,分享给需要的人。 物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网...
  • tuyile006
  • tuyile006
  • 2017年03月24日 12:08
  • 498

调用华为短信开发包发长短信(C#版 CMPP3.0)

描述:应特殊需要,必须在很短时间内开发稳定的短信处理程序,采用了移动给的短信开发包,长短信发送一直没有找到相关文档解决,作为一个码农只能找些非主流的方法解决问题了 api声明 [DllI...
  • shierhao
  • shierhao
  • 2013年06月14日 01:17
  • 3142

短信网关平台选型推荐

时下短信已经不是非常流行了,但是短信还是有它自己的市场。 短信平台目前发展的两个趋势: 1、从云端跌落到平原。 2、从大众化向行业化迁移。   现在对市场主流的短信平台进行对比分析,主流短信平台包括:...
  • jackychen_king
  • jackychen_king
  • 2016年04月18日 15:56
  • 1888

如何通过短信网关发送Wappush消息?

如何通过短信网关发送Wappush消息? 1. 消息头,包含两部分,UDH和PUD,现在经过测试,有三种可以使用的包头数据. 包头a: UDH: 06 05 04 0B 84 23 F0...
  • zx249388847
  • zx249388847
  • 2017年03月28日 10:39
  • 325

移动发送短信接口测试

首先进入中国移动短信开发接口平台:开发平台,    注册开发平台帐号,可以看见短信开发流程如下: 注册成功后你可以有五条短信,四条彩信的测试数目,点击选项四,可以查看相关语言编写的短信接...
  • Leolu007
  • Leolu007
  • 2014年03月19日 10:42
  • 2664

移动发送短信接口测试(1)

首先进入中国移动短信开发接口平台:开发平台,    注册开发平台帐号,可以看见短信开发流程如下: 注册成功后你可以有五条短信,四条彩信的测试数目,点击选项四,可以查看相关语言编写的短信接口测试用...
  • LB228988
  • LB228988
  • 2014年02月24日 16:19
  • 2189

发短信的简单实现——C#版

为了验证操作人的身份,界面中通常会有获取验证码的功能。及点击获取验证码就会往你输入的手机号里面发送一条短信进行验证。   最近公司给我的任务中也包含这个功能,那么接下来就让我讲解下。  -----...
  • shuai7boy
  • shuai7boy
  • 2016年11月17日 17:22
  • 1489
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:中国移动短信网关CMPP3.0 C#源代码:事件定义及相关工具函数
举报原因:
原因补充:

(最多只允许输入30个字)