⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmpp.cs

📁 用于移动梦网网关进行TCP通信,可以收发短信,并实现计费功能.使用SOCKET实现,并具有收发读写保护功能.可作为TCP通信和线程读写同步的教程.
💻 CS
📖 第 1 页 / 共 5 页
字号:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Security.Cryptography;
using System.Collections;
using GateWayFroCMPP3;

namespace CMPP3.Client
{
	#region <事件代理与事件数据定义>
	/// <summary>
	/// 由于内部异常,与网关的数据传输已经中断,此事件请求重新建立连接
	/// </summary>
	public delegate void RequestRestartEventHandler(object sender,System.EventArgs e);
	/// <summary>
	/// 接收到状态报告事件代理
	/// </summary>
	public delegate void RecvReportEventHandler(object sender, ReportEventArgs e);
	/// <summary>
	/// 接收到新短消息事件代理
	/// </summary>
	public delegate void RecvSMSEnventHandler(object sender, SMSEventArgs e);
	/// <summary>
	/// 接收到网关终止信号事件代理
	/// </summary>
	public delegate void RecvTerminateEventHandler(object sender,TerminateEventArgs e);
	/// <summary>
	/// 接收到对网关请求终止信号回应的事件代理
	/// </summary>
	public delegate void RecvTerminateRespEventHandler(object sender,TerminateRespEventArgs e);
	/// <summary>
	/// 向网关发送终止信号事件代理
	/// </summary>
	public delegate void SentTerminateEventHandler(object sender,TerminateEventArgs e);
	/// <summary>
	/// 向网关发送请求终止信号回应的事件代理
	/// </summary>
	public delegate void SentTerminateRespEventHandler(object sender,TerminateRespEventArgs e);
	/// <summary>
	/// 向网关发送握手消息时的事件代理
	/// </summary>
	public delegate void SentTestEventHandler(object sender,TestEventArgs e); 
	/// <summary>
	/// 接收到网关发送握手消息回复时的事件代理
	/// </summary>
	public delegate void RecvTestRespEventHandler(object sender,TestRespEventArgs e); 
	/// <summary>
	/// 接收到网关发送握手消息时的事件代理
	/// </summary>
	public delegate void RecvTestEventHandler(object sender,TestEventArgs e); 
	/// <summary>
	/// 向网关发送握手消息回复时的事件代理
	/// </summary>
	public delegate void SentTestRespEventHandler(object sender,TestRespEventArgs e); 
	/// <summary>
	/// 接收到网关对登陆信息回复时的事件代理
	/// </summary>
	public delegate void RecvConnectRespEventHandler(object sender,ConnectRespEventArgs e); 
	/// <summary>
	/// 向网关发送了登陆信息时的事件代理
	/// </summary>
	public delegate void SentConnectEventHandler(object sender,SentConnectEventArgs e); 
	/// <summary>
	/// 向网关发送了取消发送信息时的事件代理
	/// </summary>
	public delegate void SentCancelEventHandler(object sender,SentCancelEventArgs e); 
	/// <summary>
	/// 从网关接收到取消发送信息的回复时的事件代理
	/// </summary>
	public delegate void RecvCancelRespEventHandler(object sender,CancelRespEventArgs e); 
	/// <summary>
	/// 接收到网关的发送信息回复时的事件代理
	/// </summary>
	public delegate void RecvSubmitRespEventHandler(object sender,SubmitRespEventArgs e); 
	/// <summary>
	/// 向网关发送短信时的事件代理
	/// </summary>
	public delegate void SentSubmitEventHandler(object sender,SubmitEventArgs e); 

	/// <summary>
	/// 接收到网关的查询信息回复时的事件代理
	/// </summary>
	public delegate void RecvQueryRespEventHandler(object sender,QueryRespEventArgs e);
	/// <summary>
	/// 向网关发送查询信息时的事件代理
	/// </summary>
	public delegate void SentQueryEventHandler(object sender,SentQueryEventArgs e);
	/// <summary>
	/// 登陆成功时的事件代理
	/// </summary>
	public delegate void LoginSuccEventHandler(object sender,EventArgs e); //当成功登录系统 
	/// <summary>
	/// 当套接字关闭时的事件代理
	/// </summary>
	public delegate void SocketClosedEventHandler(object sender,SocketClosedEventArgs e); //当套接字被检测到关闭 
	/// <summary>
	/// 当消息发送多次仍未收到回应时的事件代理
	/// </summary>
	public delegate void FailedItemDeletedEventHandler(object sender,FailedItemDeleteEventArgs e); //当一条等待队列的消息超过60秒没有回应
	/// <summary>
	/// 当出现错误时的事件代理
	/// </summary>
	public delegate void ErrorEventHandler(object sender,ErrorEventArgs e);
	/// <summary>
	/// 状态报告事件数据
	/// </summary>
	public class ReportEventArgs:System.EventArgs
	{
		MSG.CMPP_Deliver deliver;
		public ReportEventArgs(MSG.CMPP_Deliver Deliver)
		{
			deliver=Deliver;
		}
		public MSG.CMPP_Deliver Deliver
		{
			get
			{
				return this.deliver;
			}
		}
	}	
	/// <summary>
	/// 新短信事件数据
	/// </summary>
	public class SMSEventArgs:System.EventArgs
	{
		MSG.CMPP_Deliver deliver;
		public SMSEventArgs(MSG.CMPP_Deliver Deliver)
		{
			deliver=Deliver;
		}
		public MSG.CMPP_Deliver Deliver
		{
			get
			{
				return this.deliver;
			}
		}
	}
	/// <summary>
	/// 拆除连接事件数据
	/// </summary>
	public class TerminateEventArgs:System.EventArgs
	{
		public TerminateEventArgs()
		{}
	}
	/// <summary>
	/// 拆除连接回复事件数据
	/// </summary>
	public class TerminateRespEventArgs:System.EventArgs
	{
		uint seq;
		public TerminateRespEventArgs(uint Sequence)
		{
			seq=Sequence;
		}
		public uint Sequence
		{
			get
			{
				return this.seq;
			}
		}
	}
	/// <summary>
	/// 握手消息事件数据
	/// </summary>
	public class TestEventArgs:System.EventArgs
	{
		uint seq;
		public TestEventArgs(uint Sequence)
		{
			seq=Sequence;
		}
		public uint Sequence
		{
			get
			{
				return this.seq;
			}
		}
	}
	/// <summary>
	/// 握手消息回复事件数据
	/// </summary>
	public class TestRespEventArgs:System.EventArgs
	{
		MSG.CMPP_ActiveTest_Resp test_resp;
		public TestRespEventArgs(MSG.CMPP_ActiveTest_Resp Test_resp)
		{
			test_resp=Test_resp;
		}
		public MSG.CMPP_ActiveTest_Resp Test_Resp
		{
			get
			{
				return this.test_resp;
			}
		}
	}
	/// <summary>
	/// 登陆回复事件数据
	/// </summary>
	public class ConnectRespEventArgs:System.EventArgs
	{
		MSG.CMPP_Connect_Resp conn_resp;
		public ConnectRespEventArgs(MSG.CMPP_Connect_Resp Connect_Resp)
		{
			conn_resp=Connect_Resp;
		}
		public MSG.CMPP_Connect_Resp Connect_resp
		{
			get
			{
				return this.conn_resp;
			}
		}
	}
	/// <summary>
	/// 登陆事件数据
	/// </summary>
	public class SentConnectEventArgs:System.EventArgs
	{
		CMPP3.Client.MSG.CMPP_Connect _ConnectMsg;
		public SentConnectEventArgs(CMPP3.Client.MSG.CMPP_Connect ConnectMsg)
		{
			_ConnectMsg=ConnectMsg;
		}
		public CMPP3.Client.MSG.CMPP_Connect Connect_Msg
		{
			get
			{
				return this._ConnectMsg;
			}
		}
	}
	/// <summary>
	/// 取消发送事件数据
	/// </summary>
	public class SentCancelEventArgs:System.EventArgs
	{
		public SentCancelEventArgs()
		{}
	}
	/// <summary>
	/// 取消发送回复事件数据
	/// </summary>
	public class CancelRespEventArgs:System.EventArgs
	{
		uint seq;
		MSG.CMPP_Cancel cancel;
		MSG.CMPP_Cancel_Resp cancel_resp;
		public CancelRespEventArgs(uint Sequence,MSG.CMPP_Cancel Cancel,MSG.CMPP_Cancel_Resp Cancel_Resp)
		{
			seq=Sequence;
			cancel=Cancel;
			cancel_resp=Cancel_Resp;
		}
		public MSG.CMPP_Cancel_Resp Cancel_Resp
		{
			get
			{
				return this.cancel_resp;
			}
		}
		public MSG.CMPP_Cancel Cancel
		{
			get
			{
				return this.cancel;
			}
		}
		public uint Sequence
		{
			get
			{
				return this.seq;
			}
		}
	}
	/// <summary>
	/// 发送短信回复事件数据
	/// </summary>
	public class SubmitRespEventArgs:System.EventArgs
	{
		uint _seq;
		MSG.CMPP_Submit _Submit;
		MSG.CMPP_Submit_Resp _Submit_Resp;
		public SubmitRespEventArgs(uint Sequence,MSG.CMPP_Submit Submit,MSG.CMPP_Submit_Resp Submit_Resp)
		{
			_seq=Sequence;
			_Submit=Submit;
			_Submit_Resp=Submit_Resp;
		}
		public MSG.CMPP_Submit Submit
		{
			get
			{
				return this._Submit;
			}
		}
		public MSG.CMPP_Submit_Resp Submit_Resp
		{
			get
			{
				return this._Submit_Resp;
			}
		}
		public uint Sequence
		{
			get
			{
				return this._seq;
			}
		}
	}
	/// <summary>
	/// 发送短信事件数据
	/// </summary>
	public class SubmitEventArgs:System.EventArgs
	{
		public SubmitEventArgs()
		{}
	}
	/// <summary>
	/// 发送查询信息事件数据
	/// </summary>
	public class SentQueryEventArgs:System.EventArgs
	{
		public SentQueryEventArgs()
		{}
	}
	/// <summary>
	/// 查询回复事件数据
	/// </summary>
	public class QueryRespEventArgs:System.EventArgs
	{
		uint seq;
		MSG.CMPP_Query query;
		MSG.CMPP_Query_Resp query_resp;
		public QueryRespEventArgs(uint Sequence,MSG.CMPP_Query Query,MSG.CMPP_Query_Resp Query_resp)
		{
			seq=Sequence;
			query=Query;
			query_resp=Query_resp;
		}
		public uint Sequence
		{
			get
			{
				return this.seq;
			}
		}
		public MSG.CMPP_Query Query
		{
			get
			{
				return this.query;
			}
		}
		public MSG.CMPP_Query_Resp Query_Resp
		{
			get
			{
				return this.query_resp;
			}
		}
	}
	/// <summary>
	/// 套接字中断事件数据
	/// </summary>
	public class SocketClosedEventArgs:System.EventArgs
	{
		SortedList _OutQueue;
		SortedList _WaitQueue;
		public SocketClosedEventArgs(SortedList TheOutQueue,SortedList TheWaitQueue)
		{
			this._OutQueue=TheOutQueue;
			this._WaitQueue=TheWaitQueue;
		}
		public SortedList TheOutQueue
		{
			get
			{
				return this._OutQueue;
			}
		}
		public SortedList TheWaitQueue
		{
			get
			{
				return this._WaitQueue;
			}

		}
	}
	/// <summary>
	/// 消息重发超过次数事件数据
	/// </summary>
	public class FailedItemDeleteEventArgs:System.EventArgs
	{
		QueueItem q;
		public FailedItemDeleteEventArgs(QueueItem item)
		{
			q=item;
		}
		public QueueItem Item
		{
			get
			{
				return this.q;
			}
		}
	}
	/// <summary>
	/// 系统出现错误时的事件数据
	/// </summary>
	public class ErrorEventArgs:System.EventArgs
	{
		string errormsg="";
		string mymsg="";
		bool hasmymsg=false;
		Exception ex;
		public ErrorEventArgs()
		{}
		public Exception ExceptionObject
		{
			get
			{
				return this.ex;
			}
			set
			{
				this.ex=value;
			}
		}
		public string MyMessage
		{
			get

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -