📄 sms.cs
字号:
}
}
public string Stat
{
get
{
return _Stat;
}
set
{
_Stat = value;
}
}
public string Submit_time
{
get
{
return _Submit_time;
}
set
{
_Submit_time = value;
}
}
public string Done_time
{
get
{
return _Done_time;
}
set
{
_Done_time = value;
}
}
public string Dest_terminal_Id
{
get
{
return _Dest_terminal_Id;
}
set
{
_Dest_terminal_Id = value;
}
}
public uint SMSC_sequence
{
get
{
return _SMSC_sequence;
}
set
{
_SMSC_sequence = value;
}
}
private string _Dest_terminal_Id; // 32 Octet String 目的终端MSISDN号码(SP发送CMPP_SUBMIT消息的目标终端)。
private uint _SMSC_sequence; // 4 Unsigned Integer 取自SMSC发送状态报告的消息体中的消息标识。
public override string ToString()
{
return string.Format
(
"[\r\nMessageBody:"
+ "\r\n\tBodyLength: {0}"
+ "\r\n\tDest_terminal_Id: {1}"
+ "\r\n\tDone_time: {2}"
+ "\r\n\tMsg_Id: {3}"
+ "\r\n\tSMSC_sequence: {4}"
+ "\r\n\tStat: {5}"
+ "\r\n\tSubmit_time: {6}"
+ "\r\n]"
, CMPP_Msg_Content.BodyLength
, _Dest_terminal_Id
, _Done_time
, _Msg_Id
, _SMSC_sequence
, _Stat
, _Submit_time
);
}
}
public class CMPP_QUERY //: CMPP_Request
{
private MessageHeader _Header;
private string _Time; // 8 Octet String 时间YYYYMMDD(精确至日)。
private uint _Query_Type; // 1 Unsigned Integer 查询类别:
// 0:总数查询;
// 1:按业务类型查询。
private string _Query_Code; // 10 Octet String 查询码。
// 当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务类型Service_Id.。
private string _Reserve; // 8 Octet String 保留。
public MessageHeader Header
{
get
{
return _Header;
}
}
public string Time
{
get
{
return _Time;
}
}
public uint Query_Type
{
get
{
return _Query_Type;
}
}
public string Query_Code
{
get
{
return _Query_Code;
}
}
public string Reserve
{
get
{
return _Reserve;
}
}
public const int BodyLength = 8 + 1 + 10 + 8;
public CMPP_QUERY
(
DateTime Time
, uint Query_Type
, string Query_Code
, string Reserve
, uint Sequence_Id
)
{
_Time = Utility.Get_YYYYMMDD_String(Time);
_Query_Type = Query_Type;
_Query_Code = Query_Code;
_Reserve = Reserve;
_Header = new MessageHeader
(
(uint)(MessageHeader.Length + BodyLength)
, CMPP_Command_Id.CMPP_QUERY
, Sequence_Id
);
}
public byte[] ToBytes()
{
int i = 0;
byte[] bytes = new byte[MessageHeader.Length + BodyLength];
//header
byte[] buffer = new byte[MessageHeader.Length];
buffer = _Header.ToBytes();
buffer.CopyTo(bytes, 0);
//Time 8
i += MessageHeader.Length;
buffer = new byte[10];
buffer = Encoding.ASCII.GetBytes(_Time);
buffer.CopyTo(bytes, i);
//Query_Type 1
i += 8;
bytes[i++] = (byte)_Query_Type;
//Query_Code 10
buffer = new byte[10];
buffer = Encoding.ASCII.GetBytes(_Query_Code);
buffer.CopyTo(bytes, i);
//Reserve 8
i += 10;
buffer = new byte[8];
buffer = Encoding.ASCII.GetBytes(_Reserve);
buffer.CopyTo(bytes, i);
return bytes;
}
public override string ToString()
{
return "[\r\n"
+ _Header.ToString() + "\r\n"
+ "\t"
+ string.Format
(
"MessageBody:"
+ "{0}Query_Code: {1}"
+ "{0}Query_Type: {2}"
+ "{0}Reserve: {3}"
+ "{0}Time: {4}"
, "\r\n\t\t"
, _Query_Code
, _Query_Type
, _Reserve
, _Time
)
+ "\r\n]";
}
}
public class CMPP_QUERY_RESP
{
public MessageHeader Header
{
get
{
return _Header;
}
}
public string Time
{
get
{
return _Time;
}
}
public uint Query_Type
{
get
{
return _Query_Type;
}
}
public string Query_Code
{
get
{
return _Query_Code;
}
}
public uint Mt_TlMsg
{
get
{
return _MT_TLMsg;
}
}
public uint Mt_Tlusr
{
get
{
return _MT_Tlusr;
}
}
public uint Mt_Scs
{
get
{
return _MT_Scs;
}
}
public uint MT_WT
{
get
{
return _MT_WT;
}
}
public uint MT_FL
{
get
{
return _MT_FL;
}
}
public uint MO_Scs
{
get
{
return _MO_Scs;
}
}
public uint MO_WT
{
get
{
return _MO_WT;
}
}
public uint MO_FL
{
get
{
return _MO_FL;
}
}
private MessageHeader _Header;
private string _Time; // 8 Octet String 时间(精确至日)。
private uint _Query_Type; // 1 Unsigned Integer 查询类别:
// 0:总数查询;
// 1:按业务类型查询。
private string _Query_Code; // 10 Octet String 查询码。
private uint _MT_TLMsg; // 4 Unsigned Integer 从SP接收信息总数。
private uint _MT_Tlusr; // 4 Unsigned Integer 从SP接收用户总数。
private uint _MT_Scs; // 4 Unsigned Integer 成功转发数量。
private uint _MT_WT; // 4 Unsigned Integer 待转发数量。
private uint _MT_FL; // 4 Unsigned Integer 转发失败数量。
private uint _MO_Scs; // 4 Unsigned Integer 向SP成功送达数量。
private uint _MO_WT; // 4 Unsigned Integer 向SP待送达数量。
private uint _MO_FL; // 4 Unsigned Integer 向SP送达失败数量。
public const int BodyLength = 8 // Octet String 时间(精确至日)。
+ 1 // Unsigned Integer 查询类别:
// 0:总数查询;
// 1:按业务类型查询。
+ 10 // Octet String 查询码。
+ 4 // Unsigned Integer 从SP接收信息总数。
+ 4 // Unsigned Integer 从SP接收用户总数。
+ 4 // Unsigned Integer 成功转发数量。
+ 4 // Unsigned Integer 待转发数量。
+ 4 // Unsigned Integer 转发失败数量。
+ 4 // Unsigned Integer 向SP成功送达数量。
+ 4 // Unsigned Integer 向SP待送达数量。
+ 4; // Unsigned Integer 向SP送达失败数量。
public CMPP_QUERY_RESP(byte[] bytes)
{
int i = 0;
//header 12
byte[] buffer = new byte[MessageHeader.Length];
Buffer.BlockCopy(bytes, 0, buffer, 0, buffer.Length);
_Header = new MessageHeader(buffer);
//Time 8
i += MessageHeader.Length;
buffer = new byte[8];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
_Time = Encoding.ASCII.GetString(buffer);
//Query_Type 1
i += 8;
_Query_Type = (uint)bytes[i++];
//Query_Code 10
buffer = new byte[10];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
_Query_Code = Encoding.ASCII.GetString(buffer);
//MT_TLMsg 4
i += 10;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MT_TLMsg = BitConverter.ToUInt32(buffer, 0);
//MT_Tlusr 4
i += 4;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MT_Tlusr = BitConverter.ToUInt32(buffer, 0);
//MT_Scs 4
i += 4;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MT_Scs = BitConverter.ToUInt32(buffer, 0);
//MT_WT 4
i += 4;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MT_WT = BitConverter.ToUInt32(buffer, 0);
//MT_FL 4
i += 4;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MT_FL = BitConverter.ToUInt32(buffer, 0);
//MO_Scs 4
i += 4;
buffer = new byte[4];
Buffer.BlockCopy(bytes, i, buffer, 0, buffer.Length);
Array.Reverse(buffer);
_MO_Scs = BitConverter.ToUInt32(buffer, 0);
//MO_WT 4
i += 4;
buffer = new byte[4];
Buffer.BlockCop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -