亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sgip.cs

?? SMGP協議對象
?? CS
?? 第 1 頁 / 共 4 頁
字號:
		}

		public override string ToString()
		{
			return string.Format("{0}{1}{2}", Part1, Part2, Part3);
		}

		/*
		   public override bool Equals(object obj)
		   {
			   SequenceNumber r = obj as SequenceNumber;
			   if (r != null)
			   {
				   return (this._part1 == r._part1) && (this._part2 == r._part2) && (this._part3 == r._part3);
			   }
			   return false;
		   }

		   public static bool operator ==(SequenceNumber x, SequenceNumber y)
		   {
			   return (x._part1 == y._part1) && (x._part2 == y._part2) && (x._part3 == y._part3);
		   }

		   public static bool operator !=(SequenceNumber x, SequenceNumber y)
		   {
			   return !(x == y);
		   }
		 */

		/// <summary>
		/// 轉換成byte[]類型,以便發送到socket
		/// </summary>
		/// <returns></returns>
		public byte[] GetBytes()
		{
			byte[] result = new byte[12];
			Buffer.BlockCopy(BitConverter.GetBytes(_part1), 0, result, 0, 4);
			Buffer.BlockCopy(BitConverter.GetBytes(_part2), 0, result, 4, 4);
			Buffer.BlockCopy(BitConverter.GetBytes(_part3), 0, result, 8, 4);
			return result;
		}

		/// <summary>
		/// 從一個內存塊中讀取數據
		/// </summary>
		/// <param name="buffer"></param>
		/// <param name="startIndex"></param>
		internal void ReadFromBytes(byte[] buffer, int startIndex)
		{
			_part1 = BitConverter.ToUInt32(buffer, startIndex);
			_part2 = BitConverter.ToUInt32(buffer, startIndex + 4);
			_part3 = BitConverter.ToUInt32(buffer, startIndex + 8);
		}

		/// <summary>
		/// 從一個byte[]數組中讀取序列號對象
		/// </summary>
		/// <param name="buffer"></param>
		/// <param name="startIndex"></param>
		/// <returns></returns>
		public static SequenceNumber ToSequenceNumber(byte[] buffer, int startIndex)
		{
			SequenceNumber sn = new SequenceNumber();
			sn.ReadFromBytes(buffer, startIndex);
			return sn;
		}

		/// <summary>
		/// 生成一個序列號對象
		/// </summary>
		/// <returns></returns>
		public static SequenceNumber CreateSequenceNumber()
		{
			SequenceNumber sn = new SequenceNumber();
			sn.Part1 = 13023;//apiHelper.SP.NodeID;
			sn.Part2 = Convert.ToUInt32(DateTime.Now.ToString("MMddHHmmff"));
			sn.Part3 = _Sequence++;
			return sn;
		}
	}

	public class Bind: Body
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_BIND;
		}

		private byte _loginType; //1
		private string _loginName = ""; //16;
		private string _loginPassword = ""; //16
		private byte[] _reserved = new byte[8]; //8

		

		/// <summary>
		/// 1:SP向SMG建立的連接,用于發送命令
		//2:SMG向SP建立的連接,用于發送命令
		//3:SMG之間建立的連接,用于轉發命令
		//4:SMG向GNS建立的連接,用于路由表的檢索和維護
		//5:GNS向SMG建立的連接,用于路由表的更新
		//6:主備GNS之間建立的連接,用于主備路由表的一致性
		//11:SP與SMG以及SMG之間建立的測試連接,用于跟蹤測試
		//其它:保留
		/// </summary>
		public byte LoginType
		{
			get { return _loginType; }
			set { _loginType = value; }
		}

		/// <summary>
		/// 服務器分配的登錄名,最長為16
		/// </summary>
		public string LoginName
		{
			get { return _loginName; }
			set
			{
				apiHelper.CheckMaxBytes(value, 16);
				_loginName = value;
			}
		}

		/// <summary>
		/// 密碼
		/// </summary>
		public string LoginPassword
		{
			get { return _loginPassword; }
			set
			{
				apiHelper.CheckMaxBytes(value, 16);
				_loginPassword = value;
			}
		}

		/// <summary>
		/// 保留,最多8個字節
		/// </summary>
		public byte[] Reserved
		{
			get { return _reserved; }
			set
			{
				apiHelper.CheckMaxBytes(value, 8);
				_reserved = value;
			}
		}

		public override int GetLength()
		{
			return 41;
		}

		public override byte[] GetBytes()
		{
			byte[] result = new byte[this.GetLength()];
			int nIndex = 0;
			result[nIndex++] = _loginType;
			Encoding.Default.GetBytes(_loginName).CopyTo(result, nIndex);    //_loginName
			nIndex += 16;
			Encoding.Default.GetBytes(_loginPassword).CopyTo(result, nIndex); //_loginPassword
			nIndex += 16;
			_reserved.CopyTo(result, nIndex); //_reserved            
			return result;
		}

		internal override void ReadFromBytes(byte[] buffer, int startIndex)
		{
			int nIndex = startIndex;
			_loginType = buffer[nIndex++];
			_loginName = apiHelper.GetASCIIString(buffer, nIndex, 16);           
			nIndex += 16;
			_loginPassword = apiHelper.GetASCIIString(buffer, nIndex, 16);
			nIndex += 16;
			Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
		}

		public Bind()
		{
		}

		public Bind(byte bLoginType, string strLoginName, string strLoginPwd)
		{
			LoginType = bLoginType;
			LoginName = strLoginName;
			LoginPassword = strLoginPwd;
		}
	}

	public class UserNumber : ArrayList
	{
		public void Add(string strPhoneNumber)
		{
			base.Add(apiHelper.Prefix86ForMobilbeNumber(strPhoneNumber));
		}

		public override string ToString()
		{
			StringBuilder sbResult = new StringBuilder();
			for (int i = 0; i < this.Count; ++i)
			{
				sbResult.Append(this[i] + ",");
			}
			return sbResult.ToString().Substring(0, sbResult.Length - 1);
		}
	}

	public class Bind_Resp : ResponseBody
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_BIND_RESP;
		}
	};

	public class Unbind: Body
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_UNBIND;
		}
	}

	public class Unbind_Resp : Body
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_UNBIND_RESP;
		}
	}

	public class Submit: Body
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_SUBMIT;
		}

		#region private members
		private string _spNumber = ""; //21, SP的接入號碼(=特服號=服務代碼)
		private string _chargeNumber = ""; //21, 付費號碼,手機號碼前加"86"國別標志;當且僅當群發且對用戶收費時為空;如果為空,則該條短消息產生的費用由UserNumber代表的用戶支付;如果為全零字符串"000000000000000000000",表示該條短消息產生的費用由SP支付。
		private byte _userCount; //1, 接收短消息的手機數量,取值范圍1至100
		private UserNumber _userNumber = new UserNumber(); //21 * _userCount, 接收該短消息的手機號,該字段重復UserCount指定的次數,手機號碼前加"86"國別標志
		private string _corpID = ""; //5, 企業代碼,取值范圍0-99999
		private string _serviceType = ""; //10, 業務代碼,由SP定義
		private byte _feeType;      //1, 計費類型
		private string _feeValue = "";   //6, 取值范圍0-99999,該條短消息的收費值,單位為分,由SP定義,對于包月制收費的用戶,該值為月租費的值
		private string _givenValue = ""; //6, 取值范圍0-99999,贈送用戶的話費,單位為分,由SP定義,特指由SP向用戶發送廣告時的贈送話費
		private byte _agentFlag;    //1, 代收費標志,0:應收;1:實收
		private byte _morelatetoMTFlag;  //1, 引起MT消息的原因:0-MO點播引起的第一條MT消息;1-MO點播引起的非第一條MT消息;2-非MO點播引起的MT消息;3-系統反饋引起的MT消息。
		private byte _priority;         //1, 優先級0-9從低到高,默認為0
		private string _expireTime = "";     //16, 短消息壽命的終止時間,如果為空,表示使用短消息中心的缺省值。時間內容為16個字符,格式為"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默認系統為北京時間
		private string _scheduleTime = "";   //16, 短消息定時發送的時間,如果為空,表示立刻發送該短消息。時間內容為16個字符,格式為"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默認系統為北京時間
		private byte _reportFlag;     //1, 狀態報告標記0-該條消息只有最后出錯時要返回狀態報告1-該條消息無論最后是否成功都要返回狀態報告2-該條消息不需要返回狀態報告3-該條消息僅攜帶包月計費信息,不下發給用戶,要返回狀態報告其它-保留缺省設置為0
		private byte _TP_pid;         //1, GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.9
		private byte _TP_udhi;        //1, GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.23,僅使用1位,右對齊
		private byte _messageCoding;  //1, 短消息的編碼格式。0:純ASCII字符串 3:寫卡操作 4:二進制編碼 8:UCS2編碼 15: GBK編碼 其它參見GSM3.38第4節:SMS Data Coding Scheme
		private byte _messageType;    //1, 信息類型:0-短消息信息,其它:待定
		private uint _messageLength = 140;   //4, 默認為140,短消息的長度
		private string _messageContent = ""; //_messageLength, 短消息的內容
		private byte[] _reserved = new byte[8];      //8, 保留,擴展用
		#endregion

		#region public propertys

		/// <summary>
		/// SP的接入號碼(=特服號=服務代碼)
		/// </summary>
		public string SPNumber
		{
			get { return _spNumber;}
			set
			{
				apiHelper.CheckMaxBytes(value, 21);
				_spNumber = value;
			}
		}

		/// <summary>
		/// 付費號碼,手機號碼前加"86"國別標志;當且僅當群發且對用戶收費時為空;如果為空,則該條短消息產生的費用由UserNumber代表的用戶支付;如果為全零字符串"000000000000000000000",表示該條短消息產生的費用由SP支付。
		/// </summary>
		public string ChargeNumber
		{
			get { return _chargeNumber;}
			set
			{
				apiHelper.CheckMaxBytes(value, 21);
				_chargeNumber = apiHelper.Prefix86ForMobilbeNumber(value);
			}
		}

		/// <summary>
		/// 接收短消息的手機數量,取值范圍1至100
		/// </summary>
		public byte UserCount
		{
			get
			{
				return _userCount;
			}
			set
			{
				_userCount = value;
			}
		}

		/// <summary>
		/// 接收該短消息的手機號,該字段重復UserCount指定的次數,手機號碼前加"86"國別標志(apiHelper.Prefix86ForMobilbeNumber(value))
		/// </summary>
		public UserNumber UserNumber
		{
			get { return _userNumber; }
			set { _userNumber = value; }
		}

		/// <summary>
		/// 企業代碼,取值范圍0-99999
		/// </summary>
		public string CorpID
		{
			get { return _corpID; }
			set
			{
				apiHelper.CheckMaxBytes(value, 5);
				_corpID = value;
			}
		}

		/// <summary>
		/// 業務代碼,由SP定義
		/// </summary>
		public string ServiceType
		{
			get { return _serviceType; }
			set
			{
				apiHelper.CheckMaxBytes(value, 10);
				_serviceType = value;
			}
		}

		/// <summary>
		/// 計費類型
		/// </summary>
		public byte FeeType
		{
			get 
			{ 
				return _feeType; 
			}
			set
			{
				_feeType = value;
			}
		}

		/// <summary>
		/// 取值范圍0-99999,該條短消息的收費值,單位為分,由SP定義,對于包月制收費的用戶,該值為月租費的值
		/// </summary>
		public string FeeValue
		{
			get { return _feeValue; }
			set
			{
				apiHelper.CheckMaxBytes(value, 6);
				_feeValue = value;
			}
		}

		/// <summary>
		/// 取值范圍0-99999,贈送用戶的話費,單位為分,由SP定義,特指由SP向用戶發送廣告時的贈送話費
		/// </summary>
		public string GivenValue
		{
			get { return _givenValue; }
			set
			{
				apiHelper.CheckMaxBytes(value, 6);
				_givenValue = value;
			}
		}

		/// <summary>
		/// 代收費標志,0:應收;1:實收
		/// </summary>
		public byte AgentFlag
		{
			get
			{
				return _agentFlag;
			}
			set
			{
				_agentFlag = value;
			}
		}

		/// <summary>
		/// 引起MT消息的原因:0-MO點播引起的第一條MT消息;1-MO點播引起的非第一條MT消息;2-非MO點播引起的MT消息;3-系統反饋引起的MT消息。
		/// </summary>
		public byte MorelatetoMTFlag
		{
			get
			{
				return _morelatetoMTFlag;
			}
			set
			{
				_morelatetoMTFlag = value;
			}
		}

		/// <summary>
		/// 優先級0-9從低到高,默認為0
		/// </summary>
		public byte Priority
		{
			get
			{
				return _priority;
			}
			set
			{
				_priority = value;
			}
		}

		/// <summary>
		/// 短消息壽命的終止時間,如果為空,表示使用短消息中心的缺省值。時間內容為16個字符,格式為"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默認系統為北京時間
		/// </summary>
		public string ExpireTime
		{
			get { return _expireTime; }
			set
			{
				apiHelper.CheckMaxBytes(value, 16);
				_expireTime = value;
			}
		}

		/// <summary>
		/// 短消息定時發送的時間,如果為空,表示立刻發送該短消息。時間內容為16個字符,格式為"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默認系統為北京時間
		/// </summary>
		public string ScheduleTime
		{
			get { return _scheduleTime; }
			set
			{
				apiHelper.CheckMaxBytes(value, 16);
				_scheduleTime = value;
			}
		}

		/// <summary>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线999| 91久久精品一区二区二区| 亚洲国产精华液网站w| 美女国产一区二区三区| 国产成人av电影| 制服丝袜日韩国产| 亚洲欧美日韩在线不卡| 狠狠色丁香久久婷婷综合_中| 成人性生交大片免费| 99久久精品一区| 日韩欧美电影在线| 亚洲尤物视频在线| 国产精品一区二区在线观看网站 | 久久久三级国产网站| 成人免费高清在线观看| 日韩精品乱码免费| 国产精品不卡一区| 7777精品伊人久久久大香线蕉超级流畅| 九九视频精品免费| 亚洲综合偷拍欧美一区色| 日韩精品一区二区三区视频| 粉嫩av一区二区三区粉嫩| 婷婷久久综合九色综合绿巨人| 久久在线免费观看| 91小视频在线观看| 日韩高清在线一区| 亚洲美女在线国产| 国产日韩综合av| 欧美成人综合网站| 日韩欧美国产精品| 91亚洲大成网污www| 国产黄色精品视频| 久久精品国产久精国产| 亚洲成人综合在线| 一区二区三区四区五区视频在线观看| 欧美韩国日本一区| 久久影音资源网| 日韩女优电影在线观看| 日韩欧美中文字幕精品| 在线观看91精品国产麻豆| 在线观看日韩毛片| 色婷婷精品久久二区二区蜜臂av| www.视频一区| www.亚洲人| 99久久99久久综合| 99r国产精品| 日本韩国欧美一区| 色8久久精品久久久久久蜜 | 春色校园综合激情亚洲| 日本sm残虐另类| 美女脱光内衣内裤视频久久网站 | 久久99久久久欧美国产| 日本女优在线视频一区二区| 亚洲综合在线视频| 亚洲一二三区在线观看| 夜夜亚洲天天久久| 亚洲小说欧美激情另类| 日产精品久久久久久久性色| 色综合久久久久综合99| 性做久久久久久免费观看| 亚洲综合激情另类小说区| 欧美国产禁国产网站cc| 夜夜嗨av一区二区三区网页| 一区二区成人在线视频| 亚洲国产精品久久久久婷婷884 | 亚洲尤物在线视频观看| 亚洲国产精品久久人人爱| 国产精品久久久久毛片软件| 国产精品女同互慰在线看| 国产无人区一区二区三区| 国产精品久久久久久久久免费樱桃| 26uuu精品一区二区| 国产三级一区二区| 亚洲猫色日本管| 亚洲成a天堂v人片| 久久99久久99精品免视看婷婷| 国产精品一区二区x88av| 99久久精品免费看国产免费软件| 色爱区综合激月婷婷| 欧美一区二区网站| 日本一区二区三区高清不卡| 亚洲影视资源网| 久久av资源站| 成人黄色在线视频| 国产在线播精品第三| 色婷婷综合久久久中文字幕| 欧美亚洲国产一区二区三区va| 91麻豆精品国产91久久久 | 亚洲狠狠爱一区二区三区| 日韩欧美国产小视频| 久久久www成人免费毛片麻豆| 欧美日韩精品福利| 久久在线观看免费| 亚洲免费在线观看| 亚洲www啪成人一区二区麻豆| 亚洲国产精品国自产拍av| 亚洲欧美激情插| 18涩涩午夜精品.www| 麻豆成人久久精品二区三区小说| 国产电影精品久久禁18| av日韩在线网站| 欧美mv日韩mv亚洲| 一区二区三区中文字幕在线观看| 美女任你摸久久| 欧美色精品在线视频| 精品久久久久久综合日本欧美| 亚洲欧美日韩国产成人精品影院 | 午夜国产精品一区| 国产成人福利片| 色综合天天综合在线视频| 久久久久久夜精品精品免费| 亚洲尤物视频在线| 丁香婷婷综合网| 欧美日韩精品系列| 极品美女销魂一区二区三区| 日日摸夜夜添夜夜添亚洲女人| av一区二区三区在线| 国产网站一区二区| 国产一区二区不卡老阿姨| 日韩一区二区三| 日日摸夜夜添夜夜添精品视频| 在线亚洲免费视频| 亚洲日本va在线观看| 91一区在线观看| 亚洲欧洲色图综合| 成人av在线观| 国产精品麻豆99久久久久久| 国产精华液一区二区三区| 久久午夜电影网| 国产一区二区三区蝌蚪| 26uuu精品一区二区三区四区在线| 日本不卡一区二区| 欧美一二三四区在线| 日韩精品一卡二卡三卡四卡无卡| 欧美日韩国产综合草草| 午夜精品视频一区| 欧美一区二区三区在线| 奇米一区二区三区av| 日韩小视频在线观看专区| 理论电影国产精品| xf在线a精品一区二区视频网站| 精品一区二区精品| 国产欧美一区二区三区在线老狼| 国产精品一区二区久久精品爱涩 | 欧美一级片在线| 精品一二线国产| 中文字幕av一区二区三区| 成人精品一区二区三区中文字幕| 国产精品天干天干在观线| av一区二区不卡| 亚洲综合激情网| 日韩一区二区在线观看视频播放| 韩国精品一区二区| 国产精品视频麻豆| 欧美影院精品一区| 日韩制服丝袜av| 国产视频视频一区| 99久久婷婷国产综合精品电影| 亚洲黄网站在线观看| 91精品国产综合久久精品| 国产精品一区在线| 亚洲色图欧美在线| 69久久夜色精品国产69蝌蚪网| 国内精品久久久久影院色| 欧美经典三级视频一区二区三区| 一本色道久久综合亚洲91| 丝袜美腿亚洲色图| 国产欧美一区视频| 欧美日韩一区三区| 国产激情视频一区二区在线观看| 玉足女爽爽91| 欧美成人激情免费网| 91首页免费视频| 免费看日韩精品| 中文字幕一区二区三中文字幕| 欧美年轻男男videosbes| 国产精品一区二区不卡| 亚洲影视在线观看| 国产亚洲欧美一区在线观看| 91国产精品成人| 国内精品第一页| 亚洲韩国一区二区三区| 国产欧美一区二区精品性色| 欧美亚洲一区二区在线观看| 国产毛片精品国产一区二区三区| 亚洲一区二区三区四区在线| 日韩欧美一二区| 色一情一伦一子一伦一区| 狠狠色综合日日| 性久久久久久久久久久久| 日本一区二区三区高清不卡| 91精品国产一区二区三区蜜臀| 92精品国产成人观看免费 | 在线这里只有精品| 国产精品一区二区免费不卡| 天堂一区二区在线| 亚洲欧美视频在线观看视频| 久久久久久毛片| 91精品欧美综合在线观看最新 | 国产乱一区二区|