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

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

?? sgip.cs

?? SMGP協議對象
?? CS
?? 第 1 頁 / 共 4 頁
字號:
		/// 狀態報告標記 0-該條消息只有最后出錯時要返回狀態報告 1-該條消息無論最后是否成功都要返回狀態報告 2-該條消息不需要返回狀態報告 3-該條消息僅攜帶包月計費信息,不下發給用戶,要返回狀態報告其它-保留缺省設置為0
		/// </summary>
		public byte ReportFlag
		{
			get 
			{
				return _reportFlag;
			}
			set
			{
				_reportFlag = value;
			}
		}

		/// <summary>
		/// GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.9
		/// </summary>
		public byte TP_pid
		{
			get
			{
				return _TP_pid;
			}
			set
			{
				_TP_pid = value;
			}
		}

		/// <summary>
		/// GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.23,僅使用1位,右對齊
		/// </summary>
		public byte TP_udhi
		{
			get
			{
				return _TP_udhi;
			}
			set
			{
				_TP_udhi = value;
			}
		}

		/// <summary>
		/// 短消息的編碼格式。0:純ASCII字符串 3:寫卡操作 4:二進制編碼 8:UCS2編碼 15: GBK編碼 其它參見GSM3.38第4節:SMS Data Coding Scheme
		/// </summary>
		public byte MessageCoding
		{
			get
			{
				return _messageCoding;
			}
			set
			{
				_messageCoding = value;
			}
		}

		/// <summary>
		/// 信息類型:0-短消息信息,其它:待定
		/// </summary>
		public byte MessageType
		{
			get
			{
				return _messageType;
			}
			set
			{
				_messageType = value;
			}
		}

		/// <summary>
		/// 默認為140,短消息的長度
		/// </summary>
		public uint MessageLength
		{
			get
			{
				return (uint)IPAddress.NetworkToHostOrder((int)_messageLength);
			}
			set
			{
				_messageLength = (uint)IPAddress.HostToNetworkOrder((int)value);
				//_messageLength = 
			}
		}

		/// <summary>
		/// 短消息的內容
		/// </summary>
		public string MessageContent
		{
			get { return _messageContent; }
			set
			{
				_messageContent = value;
			}
		}

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

		#endregion

		public override byte[] GetBytes()
		{
			byte[] result = new byte[this.GetLength()];
			int nIndex = 0;
			Encoding.ASCII.GetBytes(_spNumber).CopyTo(result, nIndex);
			nIndex += 21;
			Encoding.ASCII.GetBytes(_chargeNumber).CopyTo(result, nIndex);
			nIndex += 21;
			result[nIndex++] = _userCount;
			for (int i = 0; i < UserCount; i++) //注意:UserCount是主機順序的,而_userCount是網絡序列的!
			{
				Encoding.ASCII.GetBytes(_userNumber[i].ToString()).CopyTo(result, nIndex);
				nIndex += 21;
			}
			Encoding.ASCII.GetBytes(_corpID).CopyTo(result, nIndex);
			nIndex += 5;
			Encoding.ASCII.GetBytes(_serviceType).CopyTo(result, nIndex);
			nIndex += 10;
			result[nIndex++] = _feeType;
			Encoding.ASCII.GetBytes(_feeValue).CopyTo(result, nIndex);
			nIndex += 6;
			Encoding.ASCII.GetBytes(_givenValue).CopyTo(result, nIndex); //_givenValue
			nIndex += 6;
			result[nIndex++] = _agentFlag;
			result[nIndex++] = _morelatetoMTFlag;
			result[nIndex++] = _priority;
			Encoding.ASCII.GetBytes(_expireTime).CopyTo(result, nIndex); 
			nIndex += 16;
			Encoding.ASCII.GetBytes(_scheduleTime).CopyTo(result, nIndex); 
			nIndex += 16;
			result[nIndex++] = _reportFlag;
			result[nIndex++] = _TP_pid;
			result[nIndex++] = _TP_udhi;
			result[nIndex++] = _messageCoding;
			result[nIndex++] = _messageType;
			BitConverter.GetBytes(_messageLength).CopyTo(result, nIndex);
			nIndex += 4;
			Encoding.Default.GetBytes(_messageContent).CopyTo(result, nIndex); 
			byte[] xxx=apiHelper.StringToXCoding(_messageContent,_messageCoding);
			xxx.CopyTo(result, nIndex); 
			
			nIndex += (int)MessageLength; //注意, MessageLength屬性才是主機順序
			_reserved.CopyTo(result, nIndex);
			return result;
		}

		public override int GetLength()
		{
			return (int)(21 * UserCount + MessageLength + 123);
		}

		internal override void ReadFromBytes(byte[] buffer, int startIndex)
		{
			int nIndex = startIndex;
			_spNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
			nIndex += 21;
			_chargeNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
			nIndex += 21;

			_userCount = buffer[nIndex++];
			_userNumber.Clear();
			for (int i = 0; i < UserCount; i++)
			{
				_userNumber.Add(apiHelper.GetASCIIString(buffer, nIndex, 21));
				nIndex += 21;
			}

			_corpID = apiHelper.GetASCIIString(buffer, nIndex, 5);
			nIndex += 5;
			_serviceType = apiHelper.GetASCIIString(buffer, nIndex, 10);
			nIndex += 10;
			_feeType = buffer[nIndex++];
			_feeValue = apiHelper.GetASCIIString(buffer, nIndex, 6);
			nIndex += 6;
			_givenValue = apiHelper.GetASCIIString(buffer, nIndex, 6);
			nIndex += 6;
			_agentFlag = buffer[nIndex++];
			_morelatetoMTFlag = buffer[nIndex++];
			_priority = buffer[nIndex++];
			_expireTime = apiHelper.GetASCIIString(buffer, nIndex, 16);
			nIndex += 16;
			_scheduleTime = apiHelper.GetASCIIString(buffer, nIndex, 16);
			nIndex += 16;

			_reportFlag = buffer[nIndex++];    
			_TP_pid = buffer[nIndex++];
			_TP_udhi = buffer[nIndex++];
			_messageCoding = buffer[nIndex++];
			_messageType = buffer[nIndex++];
			_messageLength = BitConverter.ToUInt32(buffer, nIndex);
			nIndex += 4;
//			_messageContent = apiHelper.GetASCIIString(buffer, nIndex, (int)MessageLength); //注意, MessageLength屬性才是主機順序的
			_messageContent= apiHelper.XCodingtoString(buffer,nIndex,(int)MessageLength,_messageCoding);
			nIndex += (int)MessageLength;
			Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
		}
	}

	public class Submit_Resp : ResponseBody
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_SUBMIT_RESP;
		}
	}

	public class Deliver: Body
	{
		#region private member's
		private string _userNumber = ""; //21, 發送短消息的用戶手機號,手機號碼前加“86”國別標志
		private string _spNumber = ""; //21, SP的接入號碼
		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 uint _messageLength; //4, 短消息的長度
		private string _messageContent = ""; //_messageLength, 短消息的內容
		private byte[] _reserved = new byte[8]; //保留,擴展用
		#endregion

		#region  public property's

		/// <summary>
		/// 發送短消息的用戶手機號,手機號碼前加“86”國別標志
		/// </summary>
		public string UserNumber
		{
			get { return _userNumber; }
			set
			{
				apiHelper.CheckMaxBytes(value, 21);
				_userNumber = apiHelper.Prefix86ForMobilbeNumber(value);
			}
		}

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

		/// <summary>
		/// GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.9
		/// </summary>
		public byte TP_pid
		{
			get
			{
				return _TP_pid;
			}
			set
			{
				_TP_pid = value;
			}
		}

		/// <summary>
		/// GSM協議類型。詳細解釋請參考GSM03.40中的9.2.3.23,僅使用1位,右對齊
		/// </summary>
		public byte TP_udhi
		{
			get
			{
				return _TP_udhi;
			}
			set
			{
				_TP_udhi = value;
			}
		}

		/// <summary>
		/// 短消息的編碼格式。0:純ASCII字符串 3:寫卡操作 4:二進制編碼 8:UCS2編碼 15: GBK編碼 其它參見GSM3.38第4節:SMS Data Coding Scheme
		/// </summary>
		public byte MessageCoding
		{
			get
			{
				return _messageCoding;
			}
			set
			{
				_messageCoding = value;
			}
		}

		/// <summary>
		/// 短消息的長度
		/// </summary>
		public uint MessageLength
		{
			get
			{
				return (uint)IPAddress.NetworkToHostOrder((int)_messageLength);
			}
			set
			{
				_messageLength = (uint)IPAddress.HostToNetworkOrder((int)value);
			}
		}

		/// <summary>
		/// 短消息的內容
		/// </summary>
		public string MessageContent
		{
			get { return _messageContent; }
			set
			{
				_messageContent = value;
			}
		}

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

		#endregion

		public override uint GetCommandID()
		{
			return Command.SGIP_DELIVER;
		}

		public override int GetLength()
		{
			return (int)(MessageLength + 57);
		}

		public override byte[] GetBytes()
		{
			byte[] result = new byte[this.GetLength()];
			int nIndex = 0;
			Encoding.ASCII.GetBytes(_userNumber).CopyTo(result, nIndex);
			nIndex += 21;
			Encoding.ASCII.GetBytes(_spNumber).CopyTo(result, nIndex);
			nIndex += 21;

			result[nIndex++] = _TP_pid;
			result[nIndex++] = _TP_udhi;
			result[nIndex++] = _messageCoding;
			BitConverter.GetBytes(_messageLength).CopyTo(result, nIndex);
			nIndex += 4;
//			Encoding.Default.GetBytes(_messageContent).CopyTo(result, nIndex);
			apiHelper.StringToXCoding(_messageContent,_messageCoding).CopyTo(result, nIndex); 
			nIndex += (int)MessageLength; //注意,是MessageLength而不是_messageLength
			_reserved.CopyTo(result, nIndex);

			return result;
		}

		internal override void ReadFromBytes(byte[] buffer, int startIndex)
		{
			int nIndex = startIndex;
			_userNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
			nIndex += 21;
			_spNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
			nIndex += 21;
			_TP_pid = buffer[nIndex++];
			_TP_udhi = buffer[nIndex++];
			_messageCoding = buffer[nIndex++];
			_messageLength = BitConverter.ToUInt32(buffer, nIndex);
			nIndex += 4;
//			UnicodeEncoding usc2code = new UnicodeEncoding();
//			if (_messageCoding==8)
//				_messageContent=usc2code.GetString(buffer, nIndex, (int)MessageLength);
//			else
//			_messageContent = Encoding.Default.GetString(buffer, nIndex, (int)MessageLength); //注意是MessageLength而非_messageLength
			_messageContent= apiHelper.XCodingtoString(buffer,nIndex,(int)MessageLength,_messageCoding);

			nIndex += (int)MessageLength;
			Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
		}
	}

	public class Deliver_Resp: ResponseBody
	{
		public override uint GetCommandID()
		{
			return Command.SGIP_DELIVER_RESP;
		}
	}

	public class Report: Body
	{
		#region private members
		private SequenceNumber _sequenceNumber = new SequenceNumber(); //12, 該命令所涉及的Submit或deliver命令的序列號
		private byte _reportType; //1, Report命令類型  0:對先前一條Submit命令的狀態報告 1:對先前一條前轉Deliver命令的狀態報告
		private string _userNumber = ""; //21, 接收短消息的手機號,手機號碼前加“86”國別標志
		private byte _state;      //1, 該命令所涉及的短消息的當前執行狀態  0:發送成功  1:等待發送 2:發送失敗
		private byte _errorCode; //1, 當State=2時為錯誤碼值,否則為0
		private byte[] _reserved = new byte[8]; // 保留,最多8個字節
		#endregion 

		#region public propertys
		/// <summary>
		/// 該命令所涉及的Submit或deliver命令的序列號
		/// </summary>
		public SequenceNumber SequenceNumber
		{
			get { return _sequenceNumber; }
			set { _sequenceNumber = value; }
		}

		/// <summary>
		/// Report命令類型  0:對先前一條Submit命令的狀態報告 1:對先前一條前轉Deliver命令的狀態報告
		/// </summary>
		public byte ReportType
		{
			get
			{
				return _reportType;
			}
			set
			{
				_reportType = value;
			}
		}

		/// <summary>
		/// 接收短消息的手機號,手機號碼前加“86”國別標志
		/// </summary>
		public string UserNumber
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费相片 | 欧美激情一区二区三区不卡 | 成人av网站在线观看免费| 亚洲无线码一区二区三区| 2017欧美狠狠色| 欧美色老头old∨ideo| 国产成人亚洲综合a∨猫咪| 亚洲国产毛片aaaaa无费看| 国产日韩视频一区二区三区| 91精品国产一区二区三区蜜臀| av资源网一区| 国产一区二区三区精品视频| 日本美女视频一区二区| 亚洲日本成人在线观看| 欧美激情一区在线| 精品国产成人在线影院 | 最新日韩在线视频| 26uuu成人网一区二区三区| 91麻豆精品国产无毒不卡在线观看| 不卡av在线免费观看| 国产精品一区在线| 老司机精品视频线观看86| 五月综合激情婷婷六月色窝| 综合激情成人伊人| 中文字幕高清不卡| 国产亚洲一区二区三区四区| 337p粉嫩大胆噜噜噜噜噜91av | 国产成人啪免费观看软件| 青青草97国产精品免费观看| 午夜视频一区在线观看| 亚洲蜜桃精久久久久久久| 国产精品三级视频| 国产精品色在线观看| 欧美国产日韩a欧美在线观看 | 一区二区三区四区不卡在线| 国产精品午夜在线| 中文字幕国产一区二区| 国产精品久久看| 亚洲国产精品99久久久久久久久 | 在线免费不卡电影| 天堂在线一区二区| 亚洲成人免费电影| 亚洲成人高清在线| 天堂成人国产精品一区| 五月天欧美精品| 日本视频在线一区| 美女视频网站久久| 国产一区二区三区最好精华液| 91网站最新网址| 成人精品高清在线| 日本久久电影网| 欧美精品在线一区二区| 日韩欧美精品在线| 国产色91在线| 最近中文字幕一区二区三区| 亚洲精品videosex极品| 亚洲成国产人片在线观看| 日本免费新一区视频| 国产精品一色哟哟哟| 99久久综合精品| 欧美午夜片在线看| 日韩一级黄色大片| 久久久精品黄色| 亚洲精品国产成人久久av盗摄| 亚洲主播在线观看| 日本不卡视频在线| 国产精品一区二区久激情瑜伽 | 国产成人亚洲综合a∨猫咪| www.色精品| 欧美三级电影精品| 精品国产一区二区三区久久影院 | 亚洲自拍偷拍九九九| 日本不卡在线视频| 国产九色精品成人porny| 不卡一区二区中文字幕| 欧美精选在线播放| 国产三级一区二区| 一区二区三区不卡视频 | hitomi一区二区三区精品| 欧美亚洲图片小说| 久久久国产综合精品女国产盗摄| 亚洲三级视频在线观看| 免费高清视频精品| www.亚洲在线| 91精品啪在线观看国产60岁| 国产欧美日韩视频在线观看| 一区二区三区在线影院| 韩国一区二区在线观看| 在线精品视频一区二区三四| 精品国产成人在线影院| 一级特黄大欧美久久久| 国产suv精品一区二区6| 欧美精品国产精品| 专区另类欧美日韩| 国内偷窥港台综合视频在线播放| 色综合久久久久久久| 久久午夜电影网| 日韩精品一区第一页| 91美女在线看| 久久亚洲精品小早川怜子| 亚洲国产成人av好男人在线观看| 国产专区综合网| 制服.丝袜.亚洲.另类.中文 | 日日夜夜免费精品视频| 91在线精品一区二区三区| 久久奇米777| 免费高清不卡av| 欧美剧在线免费观看网站| 亚洲女性喷水在线观看一区| 国产精一区二区三区| 日韩一区二区三区四区五区六区| 亚洲综合在线五月| 波多野结衣在线一区| 久久精品一区蜜桃臀影院| 老司机精品视频线观看86| 欧美日本一道本| 亚洲综合色区另类av| 99麻豆久久久国产精品免费| 亚洲国产精华液网站w| 国产一区二区三区免费播放| 精品日韩成人av| 首页国产丝袜综合| 欧美在线视频全部完| 亚洲欧美国产毛片在线| 91亚洲国产成人精品一区二区三| 国产女主播视频一区二区| 国产一区高清在线| 久久综合丝袜日本网| 久久国产尿小便嘘嘘尿| 欧美大尺度电影在线| 日本午夜精品一区二区三区电影| 欧美日本一区二区三区四区| 亚洲电影在线免费观看| 欧美午夜理伦三级在线观看| 亚洲一区二区在线播放相泽| 欧美性猛片xxxx免费看久爱| 一卡二卡欧美日韩| 欧美日韩精品欧美日韩精品一| 午夜伦欧美伦电影理论片| 欧美日韩久久久| 五月天视频一区| 91精品国产色综合久久不卡电影| 日韩精品国产精品| 日韩欧美视频一区| 国产福利一区在线| 国产精品福利电影一区二区三区四区 | 国产亚洲精品bt天堂精选| 国产伦精品一区二区三区在线观看| 精品国产一区二区三区av性色 | 亚洲黄色小说网站| 欧美午夜一区二区三区| 图片区小说区区亚洲影院| 日韩一区二区三区免费观看| 国产综合色产在线精品| 国产精品久久久久影院色老大| 91色.com| 日韩国产精品久久久久久亚洲| 欧美sm美女调教| 成人黄色电影在线 | 成人av集中营| 亚洲自拍偷拍图区| 日韩亚洲欧美中文三级| 国产91在线观看丝袜| 国产精品国产三级国产普通话三级| 色综合天天综合狠狠| 日本不卡中文字幕| 亚洲国产电影在线观看| 欧美色图一区二区三区| 麻豆一区二区在线| 成人免费视频在线观看| 欧美人狂配大交3d怪物一区| 精品一区二区在线观看| 中文字幕在线一区免费| 91精品国产全国免费观看| 国产a精品视频| 亚洲成人综合网站| 久久久久久久综合狠狠综合| 一本久久精品一区二区| 久久精品国产99| 亚洲欧美日韩在线| 日韩三级在线免费观看| voyeur盗摄精品| 丝袜a∨在线一区二区三区不卡| 国产视频一区二区三区在线观看| 在线亚洲一区二区| 国内外精品视频| 亚洲国产欧美一区二区三区丁香婷| 精品国精品自拍自在线| 色吊一区二区三区| 国模大尺度一区二区三区| 亚洲丶国产丶欧美一区二区三区| 国产日韩影视精品| 欧美一区二区三区日韩| 91蜜桃免费观看视频| 国产精品一二二区| 蜜桃精品视频在线| 亚洲一区二区三区四区在线免费观看| 久久只精品国产| 日韩欧美在线1卡| 欧美视频中文字幕|