/// <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]; }
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); }
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)); }
public virtual void ReadBytes(byte[] byts) { MyHead = CMPPMsgHeader.Read(byts); }
/// <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); } }