admin管理员组文章数量:1642351
/// <summary>
/// 功能:消息上行到SP客户端
/// 时间:2010年12月28日
/// </summary>
public class Deliver
{
private int bodyLength;
/// <summary>
/// 消息体长度
/// </summary>
public int BodyLength
{
get { return bodyLength; }
set { bodyLength = value; }
}
private int Length = 21 + 21 + 1 + 1 + 1 + 4 + 8;
private MessageHeader msgHeader;
/// <summary>
/// 消息头
/// </summary>
public MessageHeader MsgHeader
{
get { return msgHeader; }
set { msgHeader = value; }
}
private string userNumber;
public string UserNumber
{
get { return userNumber; }
set { userNumber = value; }
}
private string sPNumber;
public string SPNumber
{
get { return sPNumber; }
set { sPNumber = value; }
}
private uint tP_pid;
public uint TP_pid
{
get { return tP_pid; }
set { tP_pid = value; }
}
private uint tP_udhi;
public uint TP_udhi
{
get { return tP_udhi; }
set { tP_udhi = value; }
}
private uint messageCoding;
public uint MessageCoding
{
get { return messageCoding; }
set { messageCoding = value; }
}
private uint messageLength;
public uint MessageLength
{
get { return messageLength; }
set { messageLength = value; }
}
private string messageContent;
public string MessageContent
{
get { return messageContent; }
set { messageContent = value; }
}
private string reserve;
public string Reserve
{
get { return reserve; }
set { reserve = value; }
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="bytes"></param>
public Deliver(byte[] bytes)
{
int i = 0;
byte[] buffer = new byte[MessageHeader.HeaderLength];
Util.ByteCopyToByte(bytes, i, buffer, 0, MessageHeader.HeaderLength);
this.msgHeader = new MessageHeader(buffer);
i = i + MessageHeader.HeaderLength;
buffer = new byte[21];
Util.ByteCopyToByte(bytes, i, buffer, 0, buffer.Length);
this.userNumber = BIConvert.Byte2String(buffer);
i = i + 21;
buffer = new byte[21];
Util.ByteCopyToByte(bytes, i, buffer, 0, buffer.Length);
this.sPNumber = BIConvert.Byte2String(buffer);
i = i + 21;
this.tP_pid = (uint)bytes[i++];
this.tP_udhi = (uint)bytes[i++];
this.messageCoding = (uint)bytes[i++];
buffer = new byte[4];
Util.ByteCopyToByte(bytes, i, buffer, 0, buffer.Length);
this.messageLength = BIConvert.Bytes2UInt(buffer);
i = i + 4;
buffer = new byte[this.messageLength];
Util.ByteCopyToByte(bytes, i, buffer, 0, buffer.Length);
switch (this.messageCoding)
{
case 8:
this.messageContent=Encoding.BigEndianUnicode.GetString(buffer).Trim();
break;
case 15:
this.messageContent = Encoding.GetEncoding("gb2312").GetString(buffer).Trim();
break;
case 0:
case 3:
case 4:
default:
this.messageContent = Encoding.ASCII.GetString(buffer).ToString();
break;
}
i += (int)this.messageLength;
buffer = new byte[8];
Util.ByteCopyToByte(bytes, i, buffer, 0, buffer.Length);
this.reserve = BIConvert.Byte2String(buffer);
i = i + 8;
}
}
版权声明:本文标题:SGIP协议之Deliver 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729331524a1196449.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论