中国移动CMPP3.0协议C#版本

1 篇文章 0 订阅
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>  

下面是数据库的实现代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;


namespace CMPP
{
    


    class SMSData
    {
        private string errMessage;
        private OleDbConnection oleConn;
        private OleDbCommand oleGetSynOrderRelation;
        private OleDbCommand oleGetWillSendSM_CM;
        private OleDbCommand oleGetWillSendSM_UC;
        private OleDbCommand oleRegistSPNumber;
        private OleDbCommand oleSaveRecievedSM;
        private OleDbCommand oleSaveSyncOrderRelation;
        private OleDbCommand oleSetSendSMDoneTime;
        private OleDbCommand oleSetSendSMFlag;
        private OleDbCommand oleSetSendSMMsgId;
        private OleDbCommand oleUpdateSynOrderRelationFlag;

        public SMSData()
        {
            this.InitializeComponent();
       
        }

        public int GetWillSendSM_CM(ref long id, ref CMPP_SUBMIT mess)
        {
            int num1 = 0;
            try
            {
                OleDbDataAdapter adapter1 = new OleDbDataAdapter(this.oleGetWillSendSM_CM);
                DataTable table1 = new DataTable("tbl_SendSM");
                if (adapter1.Fill(table1) > 0)
                {
                    id = Convert.ToInt64(table1.Rows[0]["id"].ToString());
                    mess.Pk_total = 0;
                    mess.Pk_number = 0;
                    if (table1.Rows[0]["Registered_Delivery"].ToString().Trim().Length > 0)
                    {
                        mess.Registered_Delivery = Convert.ToByte(table1.Rows[0]["Registered_Delivery"].ToString());
                    }
                    else
                    {
                        mess.Registered_Delivery = 1;
                    }
                    if (table1.Rows[0]["Msg_level"].ToString().Trim().Length > 0)
                    {
                        mess.Msg_level = Convert.ToByte(table1.Rows[0]["Msg_level"].ToString());
                    }
                    else
                    {
                        mess.Msg_level = 0;
                    }
                    if (table1.Rows[0]["service"].ToString().Trim().Length > 0)
                    {
                        mess.Service_Id = table1.Rows[0]["service"].ToString();
                    }
                    else
                    {
                        mess.Service_Id = "Test";
                    }
                    if (table1.Rows[0]["Fee_UserType"].ToString().Trim().Length > 0)
                    {
                        mess.Fee_UserType = Convert.ToByte(table1.Rows[0]["Fee_UserType"].ToString());
                    }
                    else
                    {
                        mess.Fee_UserType = 0;
                    }
                    if (mess.Fee_UserType == 3)
                    {
                        mess.Fee_terminal_Id = table1.Rows[0]["Fee_terminal_Id"].ToString();
                    }
                    if (table1.Rows[0]["Fee_terminal_type"].ToString().Trim().Length > 0)
                    {
                        mess.Fee_terminal_type = Convert.ToByte(table1.Rows[0]["Fee_terminal_type"].ToString());
                    }
                    else
                    {
                        mess.Fee_terminal_type = 0;
                    }
                    if (table1.Rows[0]["TP_pid"].ToString().Trim().Length > 0)
                    {
                        mess.TP_pId = Convert.ToByte(table1.Rows[0]["TP_pid"].ToString());
                    }
                    else
                    {
                        mess.TP_pId = 0;
                    }
                    if (table1.Rows[0]["TP_udhi"].ToString().Trim().Length > 0)
                    {
                        mess.TP_udhi = Convert.ToByte(table1.Rows[0]["TP_udhi"].ToString());
                    }
                    else
                    {
                        mess.TP_udhi = 0;
                    }
                    if (table1.Rows[0]["Msg_Fmt"].ToString().Trim().Length > 0)
                    {
                        mess.Msg_Fmt = Convert.ToByte(table1.Rows[0]["Msg_Fmt"].ToString());
                    }
                    else
                    {
                        mess.Msg_Fmt = 15;
                    }
                    if (table1.Rows[0]["FeeType"].ToString().Trim().Length > 0)
                    {
                        mess.FeeType = table1.Rows[0]["FeeType"].ToString();
                    }
                    else
                    {
                        mess.FeeType = "02";
                    }
                    if (table1.Rows[0]["FeeCode"].ToString().Trim().Length > 0)
                    {
                        int num3 = Convert.ToInt32(table1.Rows[0]["FeeCode"].ToString());
                        mess.FeeCode = num3.ToString("000000");
                    }
                    else
                    {
                        mess.FeeCode = "000010";
                    }
                    mess.ValId_Time = table1.Rows[0]["ExpireTime"].ToString();
                    mess.At_Time = table1.Rows[0]["ScheduleTime"].ToString();
                    mess.Src_Id = table1.Rows[0]["spid"].ToString();
                    mess.DestUsr_tl = 0;
                    mess.Dest_terminal_Id = new string[] {table1.Rows[0]["mobile"].ToString()};
                    if (table1.Rows[0]["Dest_terminal_type"].ToString().Trim().Length > 0)
                    {
                        mess.Dest_terminal_type = Convert.ToByte(table1.Rows[0]["Dest_terminal_type"].ToString());
                    }
                    else
                    {
                        mess.Dest_terminal_type = 0;
                    }
                    mess.Msg_Content = table1.Rows[0]["content"].ToString();
                    mess.LinkId = table1.Rows[0]["LinkID"].ToString();
                    return 0;
                }
                num1 = -1;
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("DASmsCenter.GetWillSendSM_CM:" + exception1.Message);
                num1 = -2;
            }
            return num1;
        }
 


        public int OpenDBConnection()
        {
            int num1;
            try
            {
                if (this.oleConn.State == ConnectionState.Closed)
                {
                    this.oleConn.Open();
                }
                num1 = 0;
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("OpenDBConnection:" + exception1.Message);
                num1 = -1;
            }
            return num1;
        }


        public int OpenDBConnection(string ConnectionString)
        {
            if (this.oleConn.State == ConnectionState.Closed)
            {
                this.oleConn.ConnectionString = ConnectionString;
                return this.OpenDBConnection();
            }
            return 0;
        }
       
        /// <summary>
        /// 保存接收的短信
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="spid"></param>
        /// <param name="content"></param>
        /// <param name="service"></param>
        /// <param name="msgId"></param>
        /// <param name="sequence"></param>
        /// <param name="LinkID"></param>
        /// <returns></returns>
        public int SaveRecievedSM(string mobile, string spid, string content, string service, long msgId, int sequence, string LinkID)
        {
            int num1 = 0;
            this.oleSaveRecievedSM.Parameters["mobile"].Value = mobile;
            this.oleSaveRecievedSM.Parameters["spid"].Value = spid;
            this.oleSaveRecievedSM.Parameters["content"].Value = content;
            this.oleSaveRecievedSM.Parameters["service"].Value = service;
            this.oleSaveRecievedSM.Parameters["msgId"].Value = msgId;
            this.oleSaveRecievedSM.Parameters["sequence"].Value = sequence;
            this.oleSaveRecievedSM.Parameters["LinkID"].Value = LinkID;
            try
            {
                this.oleSaveRecievedSM.ExecuteNonQuery();
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("DASmsCenter.SaveRecievedSM:" + exception1.Message);
                num1 = -1;
            }
            return num1;
        }

        public int SetSendSMDoneTime(long msgId, int flag, string sendstat)
        {
            int num1 = 0;
            this.oleSetSendSMDoneTime.Parameters["Original_msgId"].Value = msgId;
            this.oleSetSendSMDoneTime.Parameters["flag"].Value = flag;
            this.oleSetSendSMDoneTime.Parameters["sendstat"].Value = sendstat;
            this.oleSetSendSMDoneTime.Parameters["doneTime"].Value = DateTime.Now;
            try
            {
                this.oleSetSendSMDoneTime.ExecuteNonQuery();
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("DASmsCenter.SetSendSMDoneTime:" + exception1.Message);
                num1 = -1;
            }
            return num1;
        }

        public int SetSendSMFlag(long id, int flag, int sequence, int MessageCount)
        {
            int num1 = 0;
            this.oleSetSendSMFlag.Parameters["Original_id"].Value = id;
            this.oleSetSendSMFlag.Parameters["flag"].Value = flag;
            this.oleSetSendSMFlag.Parameters["sentTime"].Value = DateTime.Now;
            this.oleSetSendSMFlag.Parameters["sequence"].Value = sequence;
            this.oleSetSendSMFlag.Parameters["MessageCount"].Value = MessageCount;
            try
            {
                this.oleSetSendSMFlag.ExecuteNonQuery();
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("DASmsCenter.SetSendSMFlag:" + exception1.Message);
                num1 = -1;
            }
            return num1;
        }

        public int SetSendSMMsgId(int sequence, long msgId, int flag)
        {
            int num1 = 0;
            this.oleSetSendSMMsgId.Parameters["Original_sequence"].Value = sequence;
            this.oleSetSendSMMsgId.Parameters["msgId"].Value = msgId;
            this.oleSetSendSMMsgId.Parameters["flag"].Value = flag;
            try
            {
                this.oleSetSendSMMsgId.ExecuteNonQuery();
            }
            catch (Exception exception1)
            {
                this.errMessage = exception1.Message;
                Log.WriteLog("DASmsCenter.SetSendSMMsgId:" + exception1.Message);
                num1 = -1;
            }
            return num1;
        }
        public void CloseDBConnection()
        {
            this.oleConn.Close();
        }
 


        public string DBConnectionString
        {
            get
            {
                return this.oleConn.ConnectionString;
            }
            set
            {
                this.oleConn.ConnectionString = value;
            }
        }
        public string ErrorMessage
        {
            get
            {
                return this.errMessage;
            }
        }

 


        private void InitializeComponent()
        {
            this.oleConn = new OleDbConnection();
            this.oleSetSendSMFlag = new OleDbCommand();
            this.oleSetSendSMMsgId = new OleDbCommand();
            this.oleSetSendSMDoneTime = new OleDbCommand();
            this.oleGetWillSendSM_CM = new OleDbCommand();
            this.oleSaveRecievedSM = new OleDbCommand();
            this.oleRegistSPNumber = new OleDbCommand();
            this.oleGetWillSendSM_UC = new OleDbCommand();
            this.oleSaveSyncOrderRelation = new OleDbCommand();
            this.oleGetSynOrderRelation = new OleDbCommand();
            this.oleUpdateSynOrderRelationFlag = new OleDbCommand();
            this.oleConn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=127.0.0.1;Initial Catalog=SMSCenter;User ID=sa;Password=11";
            this.oleSetSendSMFlag.CommandText = "UPDATE tbl_SendSM SET flag = ?, sentTime = ?, sequence = ?, MessageCount = ? WHERE (id = ?)";
            this.oleSetSendSMFlag.Connection = this.oleConn;
            this.oleSetSendSMFlag.Parameters.Add(new OleDbParameter("flag", OleDbType.Integer, 4, "flag"));
            this.oleSetSendSMFlag.Parameters.Add(new OleDbParameter("sentTime", OleDbType.DBTimeStamp, 8, "sentTime"));
            this.oleSetSendSMFlag.Parameters.Add(new OleDbParameter("sequence", OleDbType.Integer, 4, "sequence"));
            this.oleSetSendSMFlag.Parameters.Add(new OleDbParameter("MessageCount", OleDbType.Integer, 4, "MessageCount"));
            this.oleSetSendSMFlag.Parameters.Add(new OleDbParameter("Original_id", OleDbType.BigInt, 8, ParameterDirection.Input, false, 0, 0, "id", DataRowVersion.Original, null));
            this.oleSetSendSMMsgId.CommandText = "UPDATE tbl_SendSM SET flag = ?, msgId = ? WHERE (flag = 1) AND (sequence = ?)";
            this.oleSetSendSMMsgId.Connection = this.oleConn;
            this.oleSetSendSMMsgId.Parameters.Add(new OleDbParameter("flag", OleDbType.Integer, 4, "flag"));
            this.oleSetSendSMMsgId.Parameters.Add(new OleDbParameter("msgId", OleDbType.BigInt, 8, "msgId"));
            this.oleSetSendSMMsgId.Parameters.Add(new OleDbParameter("Original_sequence", OleDbType.Integer, 4, ParameterDirection.Input, false, 0, 0, "sequence", DataRowVersion.Original, null));
            this.oleSetSendSMDoneTime.CommandText = "UPDATE tbl_SendSM SET flag = ?, doneTime = ?, sendstat = ? WHERE (flag = 2) AND (msgId = ?)  ";
            this.oleSetSendSMDoneTime.Connection = this.oleConn;
            this.oleSetSendSMDoneTime.Parameters.Add(new OleDbParameter("flag", OleDbType.Integer, 4, "flag"));
            this.oleSetSendSMDoneTime.Parameters.Add(new OleDbParameter("doneTime", OleDbType.DBTimeStamp, 8, "doneTime"));
            this.oleSetSendSMDoneTime.Parameters.Add(new OleDbParameter("sendstat", OleDbType.VarChar, 10, "sendstat"));
            this.oleSetSendSMDoneTime.Parameters.Add(new OleDbParameter("Original_msgId", OleDbType.BigInt, 8, ParameterDirection.Input, false, 0, 0, "msgId", DataRowVersion.Original, null));
            this.oleGetWillSendSM_CM.CommandText = "SELECT id, mobile, spid, content, Registered_Delivery, Msg_level, Service, Fee_UserType, Fee_terminal_Id, Fee_terminal_type, TP_pid, TP_udhi, Msg_Fmt, FeeType, FeeCode, ExpireTime, ScheduleTime, Dest_terminal_type, LinkID FROM tbl_SendSM WHERE (flag = 0) AND (preSendTime <= GETDATE()) AND (mobile NOT LIKE '130%') AND (mobile NOT LIKE '131%') AND (mobile NOT LIKE '133%') ORDER BY id";
            this.oleGetWillSendSM_CM.Connection = this.oleConn;
            this.oleSaveRecievedSM.CommandText = "INSERT INTO tbl_RecieveSM (mobile, spid, content, msgId, sequence, service, LinkID, recieveTime, flag) VALUES (?, ?, ?, ?, ?, ?, ?, GETDATE(), 0)";
            this.oleSaveRecievedSM.Connection = this.oleConn;
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("mobile", OleDbType.VarChar, 20, "mobile"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("spid", OleDbType.VarChar, 0x15, "spid"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("content", OleDbType.VarWChar, 200, "content"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("msgId", OleDbType.BigInt, 8, "msgId"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("sequence", OleDbType.Integer, 4, "sequence"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("service", OleDbType.VarChar, 20, "service"));
            this.oleSaveRecievedSM.Parameters.Add(new OleDbParameter("LinkID", OleDbType.VarWChar, 50, "LinkID"));
            this.oleRegistSPNumber.CommandText = "SELECT * FROM tbl_SPInfo WHERE (spid = ?) ";
            this.oleRegistSPNumber.Connection = this.oleConn;
            this.oleRegistSPNumber.Parameters.Add(new OleDbParameter("spid", OleDbType.VarChar, 0x15, "spid"));
            this.oleGetWillSendSM_UC.CommandText = "SELECT id, mobile, spid, content, Service, FeeType, FeeCode, UC_GivenValue, UC_AgentFlag, UC_MorelatetoMTFlag, Msg_level, ExpireTime, ScheduleTime, Registered_Delivery, TP_pid, TP_udhi, Msg_Fmt, UC_MessageType, UC_ChargeNumber, LinkID FROM tbl_SendSM WHERE (flag = 0) AND (preSendTime <= GETDATE()) AND (mobile LIKE '130%' OR mobile LIKE '131%' OR mobile LIKE '133%') ORDER BY id";
            this.oleGetWillSendSM_UC.Connection = this.oleConn;
            this.oleSaveSyncOrderRelation.CommandText = "INSERT INTO tbl_SyncOrderRelation (TransactionID, MsgType, Version, Send_Address_DeviceType, Send_Address_DeviceID, Dest_Address_DeviceType, Dest_Address_DeviceID, FeeUser_ID_UserIDType, FeeUser_ID_MSISDN, FeeUser_ID_PseudoCode, DestUser_ID_UserIDType, DestUser_ID_MSISDN, DestUser_ID_PseudoCode, LinkID, ActionID, ActionReasonID, SPID, SPServiceID, AccessMode, FeatureStr, hRet, RecieveTime, Flag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, GETDATE(), 0)";
            this.oleSaveSyncOrderRelation.Connection = this.oleConn;
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("TransactionID", OleDbType.VarChar, 50, "TransactionID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("MsgType", OleDbType.VarChar, 50, "MsgType"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("Version", OleDbType.VarChar, 50, "Version"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("Send_Address_DeviceType", OleDbType.Integer, 4, "Send_Address_DeviceType"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("Send_Address_DeviceID", OleDbType.VarChar, 50, "Send_Address_DeviceID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("Dest_Address_DeviceType", OleDbType.Integer, 4, "Dest_Address_DeviceType"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("Dest_Address_DeviceID", OleDbType.VarChar, 50, "Dest_Address_DeviceID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("FeeUser_ID_UserIDType", OleDbType.Integer, 4, "FeeUser_ID_UserIDType"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("FeeUser_ID_MSISDN", OleDbType.VarChar, 50, "FeeUser_ID_MSISDN"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("FeeUser_ID_PseudoCode", OleDbType.VarChar, 50, "FeeUser_ID_PseudoCode"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("DestUser_ID_UserIDType", OleDbType.Integer, 4, "DestUser_ID_UserIDType"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("DestUser_ID_MSISDN", OleDbType.VarChar, 50, "DestUser_ID_MSISDN"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("DestUser_ID_PseudoCode", OleDbType.VarChar, 50, "DestUser_ID_PseudoCode"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("LinkID", OleDbType.VarChar, 50, "LinkID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("ActionID", OleDbType.Integer, 4, "ActionID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("ActionReasonID", OleDbType.Integer, 4, "ActionReasonID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("SPID", OleDbType.VarChar, 50, "SPID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("SPServiceID", OleDbType.VarChar, 50, "SPServiceID"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("AccessMode", OleDbType.Integer, 4, "AccessMode"));
            this.oleSaveSyncOrderRelation.Parameters.Add(new OleDbParameter("FeatureStr", OleDbType.VarChar, 50, "FeatureStr"));
            this.oleGetSynOrderRelation.CommandText = "SELECT TOP 1 TransactionID, MsgType, Version, hRet FROM tbl_SyncOrderRelation WHERE (Flag = 0) AND (DATEADD(second, 2, RecieveTime) < GETDATE()) OR (Flag = 1) ORDER BY TransactionID";
            this.oleGetSynOrderRelation.Connection = this.oleConn;
            this.oleUpdateSynOrderRelationFlag.CommandText = "UPDATE tbl_SyncOrderRelation SET Flag = ? WHERE (TransactionID = ?)";
            this.oleUpdateSynOrderRelationFlag.Connection = this.oleConn;
            this.oleUpdateSynOrderRelationFlag.Parameters.Add(new OleDbParameter("Flag", OleDbType.Integer, 4, "Flag"));
            this.oleUpdateSynOrderRelationFlag.Parameters.Add(new OleDbParameter("Original_TransactionID", OleDbType.VarChar, 50, ParameterDirection.Input, false, 0, 0, "TransactionID", DataRowVersion.Original, null));
        }
 


    }
}

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版)(CMPP SP Client) 增加了 CMPP Client 类本程序严格按 《中国移动通信企业标准》之《中国移动通信互联网短信网关接口协议(China Mobile Point to Point)》(版本号: 3.0.0) 即: CMPP v3.0.0 http://www.spzone.net/protocol/CMPPV3.0.rar 文档,实现了下面消息的定义及其相关协议级交互: 8.4 业务提供商 (SP) 与互联网短信网关 (ISMG) 间的消息定义 8 8.4.1 SP 请求连接到 ISMG(CMPP_CONNECT) 操作 8 8.4.1.1 CMPP_CONNECT 消息定义 (SP -> ISMG) 8 8.4.1.2 CMPP_CONNECT_RESP消息定义 (ISMG -> SP) 9 8.4.2 SP 或 ISMG 请求拆除连接 (CMPP_TERMINATE)操作 9 8.4.2.1 CMPP_TERMINATE 消息定义 (SP -> ISMG 或 ISMG -> SP) 9 8.4.2.2 CMPP_TERMINATE_RESP 消息定义 (SP -> ISMG 或 ISMG -> SP) 10 8.4.3 SP 向 ISMG提交短信 (CMPP_SUBMIT) 操作 10 8.4.3.1 CMPP_SUBMIT 消息定义 (SP -> ISMG) 10 8.4.3.2 CMPP_SUBMIT_RESP 消息定义 (ISMG -> SP) 11 8.4.5 ISMG 向 SP 送交短信 (CMPP_DELIVER) 操作 13 8.4.5.1 CMPP_DELIVER 消息定义 (ISMG -> SP) 13 8.4.5.2 CMPP_DELIVER_RESP 消息定义 (SP -> ISMG) 16 8.4.7 链路检测 (CMPP_ACTIVE_TEST) 操作 17 8.4.7.1 CMPP_ACTIVE_TEST定义 (SP -> ISMG 或 ISMG <- SP) 17 8.4.7.2 CMPP_ACTIVE_TEST_RESP定义 (SP -> ISMG 或 ISMG <- SP) 17 可采用《中国移动通信 CMPP v3.0 短消息网关模拟器 v1.10》进行测试: 下载于: 《北京风起水流软件工作室》 http://www.zealware.com/download/cmpp3smg.rar本程序以熟悉理解 CMPP 3.0 协议为主要目的,只将 "消息定义" 对象化,其相关协议级交互并未作更深层次的 OO! 也暂无任何错误处理程序! 消息定义的所有字段名称及其数据类型均与上述之 CMPP v3.0.0 文档完全一致! 其间参阅过 shanhe@CSDN or yexiong@cnBlogs 大作(在此鸣谢): http://blog.csdn.net/shanhe/archive/2004/07/19/45383.aspx http://cnblogs.com/yexiong/articles/115330.aspx 但其中有些消息定义字节错位,因此不能正常交互?!且对象化层次较高,不利于理解协议本身! 遂自己动手,丰衣足食,实现部分主要协议(SP 收发短信):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值