コード例 #1
0
ファイル: Messages.cs プロジェクト: lppcom/cmpp30
 /// <summary>
 ///
 /// </summary>
 /// <param name="head"></param>
 /// <param name="byts"></param>
 public override void ReadBytes(byte[] byts)
 {
     MyHead                 = CMPPMsgHeader.Read(byts);
     this.Status            = ReverseByteOrder.ReverseBytes(BitConverter.ToUInt32(byts, 12));
     this.AuthenticatorISMG = BitConverter.ToString(byts, 16, 16).Replace("-", "");
     Version                = byts[32];
 }
コード例 #2
0
ファイル: Messages.cs プロジェクト: lppcom/cmpp30
 public override void ReadBytes(byte[] byts)
 {
     MyHead              = CMPPMsgHeader.Read(byts);
     Msg_Id              = ReverseByteOrder.ReverseBytes(BitConverter.ToUInt64(byts, 12));
     Dest_Id             = Tools.BytesToString(byts, 20, 21);
     Service_Id          = Tools.BytesToString(byts, 41, 10);
     TP_pid              = byts[51];
     TP_udhi             = byts[52];
     Msg_Fmt             = byts[53];
     Src_terminal_Id     = Tools.BytesToString(byts, 54, 32);
     Src_terminal_type   = byts[86];
     Registered_Delivery = byts[87];
     Msg_Length          = byts[88];
     Msg_Content         = new byte[Msg_Length];
     Buffer.BlockCopy(byts, 89, Msg_Content, 0, Msg_Length);
 }
コード例 #3
0
ファイル: Messages.cs プロジェクト: lppcom/cmpp30
 public override void ReadBytes(byte[] byts)
 {
     MyHead = CMPPMsgHeader.Read(byts);
     Msg_Id = ReverseByteOrder.ReverseBytes(BitConverter.ToUInt64(byts, 12));
     Result = (DeliverResult)ReverseByteOrder.ReverseBytes(BitConverter.ToUInt32(byts, 20));
 }
コード例 #4
0
ファイル: Messages.cs プロジェクト: lppcom/cmpp30
 public virtual void ReadBytes(byte[] byts)
 {
     MyHead = CMPPMsgHeader.Read(byts);
 }
コード例 #5
0
        /// <summary>
        /// 读取失败或无可读数据返回 null
        /// </summary>
        /// <returns></returns>
        private CMPPMsgBody_Base read()
        {
            byte[] buffer;
            try
            {
                //判断是否有可用的数据
                if (channelStateReady && client_sk != null && client_sk.Available > 0)
                {
                    buffer = readBuffer(client_sk.GetStream());
                }
                else
                {
                    return(null);//没有可供读取的数据
                }
                //将读取到的数据构建成对象
                CMPPMsgHeader head;

                //读出头部,判断命令类型
                head = CMPPMsgHeader.Read(buffer);
                //根据指令类型,构建应答对象,对于不处理的指令进行丢弃
                CMPPMsgBody_Base data = null;
                switch (head.Command_Id)
                {
                case Command_Id.CMPP_SUBMIT_RESP:
                    data = new CMPP_SUBMIT_RESP(head.Sequence_Id);
                    break;

                case Command_Id.CMPP_DELIVER:
                    data = new CMPP_DELIVER(head.Sequence_Id);
                    break;

                case Command_Id.CMPP_ACTIVE_TEST:
                    data = new CMPP_ACTIVE_TEST(head.Sequence_Id);
                    break;

                case Command_Id.CMPP_ACTIVE_TEST_RESP:
                    data = new CMPP_ACTIVE_TEST_RESP(head.Sequence_Id);
                    break;

                case Command_Id.CMPP_TERMINATE:
                    data = new CMPP_TERMINATE(head.Sequence_Id);
                    break;

                case Command_Id.CMPP_TERMINATERESP:
                    data = new CMPP_TERMINATE_RESP(head.Sequence_Id);
                    break;

                default:
                    break;
                }
                if (data != null)
                {
                    data.ReadBytes(buffer);
                }
                return(data);
            }
            catch (Exception)//流读取异常
            {
                CloseSoket();
                return(null);
            }
        }