SGIP协议之Bind
来源:互联网 发布:知产律师收入 编辑:程序博客网 时间:2024/06/03 21:05
/// <summary>
/// 功能:登录网关
/// 时间:2010年12月28日
/// </summary>
public class Bind
{
private readonly int BodyLength = 1 + 16 + 16 + 8;
private MessageHeader msgHeader;
/// <summary>
/// 消息头
/// </summary>
public MessageHeader MsgHeader
{
get { return msgHeader; }
set { msgHeader = value; }
}
private uint loginType;
/// <summary>
/// 1:SP向SMG建立的连接,用于发送命令
///2:SMG向SP建立的连接,用于发送命令
///3:SMG之间建立的连接,用于转发命令
///4:SMG向GNS建立的连接,用于路由表的检索和维护
///5:GNS向SMG建立的连接,用于路由表的更新
///6:主备GNS之间建立的连接,用于主备路由表的一致性
///11:SP与SMG以及SMG之间建立的测试连接,用于跟踪测试
///其它:保留
/// </summary>
public uint LoginType
{
get { return loginType; }
set { loginType = value; }
}
private string loginName;
/// <summary>
/// 服务器端给客户端分配的登录名
/// </summary>
public string LoginName
{
get { return loginName; }
set { loginName = value; }
}
private string loginPassowrd;
/// <summary>
/// 服务器端和Login Name对应的密码
/// </summary>
public string LoginPassowrd
{
get { return loginPassowrd; }
set { loginPassowrd = value; }
}
private string reserve;
/// <summary>
/// 保留,扩展用
/// </summary>
public string Reserve
{
get { return reserve; }
set { reserve = value; }
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="loginType">登陆类型</param>
/// <param name="loginName">登录账号</param>
/// <param name="loginPassowrd">登陆密码</param>
/// <param name="reserve">保留字</param>
/// <param name="sequenceNumber">流水号</param>
public Bind(uint loginType, string loginName, string loginPassowrd, string reserve, byte[] sequenceNumber)
{
this.msgHeader = new MessageHeader((uint)(MessageHeader.HeaderLength + BodyLength), (CommandID)CommandID.BIND, sequenceNumber);
this.loginType = loginType;
this.loginName = loginName;
this.loginPassowrd = loginPassowrd;
this.reserve = reserve;
}
/// <summary>
/// 转化成byte数组
/// </summary>
/// <returns></returns>
public byte[] ToBytes()
{
int i = 0;
byte[] bytes = new byte[MessageHeader.HeaderLength + BodyLength];
byte[] buffer = this.msgHeader.ToBytes();
Util.ByteCopyToByte(buffer, 0, bytes, i, 20);
i = i + 20;
bytes[i++] = (byte)loginType;
buffer = new byte[16];
buffer = BIConvert.String2Bytes(loginName);
Util.ByteCopyToByte(buffer, 0, bytes, i, buffer.Length);
i = i + 16;
buffer = new byte[16];
buffer = BIConvert.String2Bytes(loginPassowrd);
Util.ByteCopyToByte(buffer, 0, bytes, i, buffer.Length);
i = i + 16;
buffer = new byte[8];
buffer = BIConvert.String2Bytes(reserve);
Util.ByteCopyToByte(buffer, 0, bytes, i, buffer.Length);
i = i + 8;
return bytes;
}
}
- SGIP协议之Bind
- SGIP协议之Submit
- SGIP协议之Deliver
- SGIP协议之Report
- 联通SGIP协议C#源代码
- SGIP
- CMPP/SGIP协议设计与实现
- CMPP-SGIP协议设计与实现
- 使用sgip协议的Socket编程
- CMPP/SGIP协议设计与实现
- 基于SGIP协议编写短信网关接口
- 短信网关接入程序源代码(SGIP协议)
- 中国联合通信公司SGIP协议
- 中国联通SGIP协议开发注意要点
- 短信平台软件,支持CMPP, SGIP,ISAG/ISMP协议模块
- java实现基于SGIP协议开发联通短信的方法
- tcp/ip协议栈--socket API 之bind()
- DNS BIND之bind-chroot
- 关于RTEMS MINI2440的QEMU仿真从UBOOT加载问题的研究
- MVC1 and MVC2
- linux 顺序锁
- 常用的试验设计方法和SAS程序
- Ogre学习笔记 2011年3月20日 14点44分
- SGIP协议之Bind
- 关于创业搭档:一个好汉三个帮?
- C++函数
- 利用hash_map解决众数问题
- SGIP协议之Submit
- dos设置ip以及 dns
- 武汉竟升Q复制实施文档
- 横竖屏切换时候activity的生命周期 android:configChanges
- HDU 2602经典背包