Beispiel #1
0
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="message">消息字符串</param>
 public void Send(string message, IEccReceiptListener listener)
 {
     if (Socket == null || message == string.Empty)
     {
         return;
     }
     //编码
     byte[] data = encoding.GetBytes(message);
     try
     {
         //异步发送数据
         Socket.BeginSend(data, 0, data.Length, SocketFlags.None, asyncResult =>
         {
             //完成发送消息
             int length = Socket.EndSend(asyncResult);
             //消息发送成功
             if (listener != null)
             {
                 EccReceiptListener.Ecc_Sent(listener, message, true);
             }
         }, null);
     }
     catch (SocketException ex)
     {
         //消息发送失败
         if (listener != null)
         {
             EccReceiptListener.Ecc_Sent(listener, message, false);
         }
         //异常回调
         EccExceptionListener.Ecc_BreakOff(ex);
     }
 }
Beispiel #2
0
        public void Connect(IPEndPoint ipep, IEccReceiptListener listener)
        {
            //创建套接字
            Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            //开始对一个远程主机建立异步的连接请求
            Socket.BeginConnect(ipep, asyncResult =>
            {
                try
                {
                    //结束挂起的异步连接请求
                    Socket.EndConnect(asyncResult);
                    //连接完成回调
                    if (listener != null)
                    {
                        EccReceiptListener.Ecc_Connection(listener, true);
                    }
                    //接受消息
                    Recive();
                }
                catch (SocketException ex)
                {
                    //与服务器连接失败
                    if (listener != null)
                    {
                        EccReceiptListener.Ecc_Connection(listener, false);
                    }
                    //异常回调
                    EccExceptionListener.Ecc_ConnectionFail(ex);
                }
            }, null);
        }
Beispiel #3
0
 /// <summary>
 /// 销毁对象并执行回调
 /// </summary>
 /// <param name="listener"></param>
 public void Close(IEccReceiptListener listener)
 {
     Socket.BeginDisconnect(true, asyncResult =>
     {
         Dispose();
         if (listener != null)
         {
             EccReceiptListener.Ecc_Closed(listener);
         }
     }, null);
 }
Beispiel #4
0
 //关闭连接
 public static void Close(IEccReceiptListener listener)
 {
     if (GetInstance().eccSocket != null)
     {
         if (GetInstance().eccSocket.Socket.Connected)
         {
             //关闭并销毁Socket通信对象
             GetInstance().eccSocket.Close(listener);
         }
         //EccSocket对象置空
         GetInstance().eccSocket = null;
     }
 }
Beispiel #5
0
        public static void Connect(EccSocket eccSocket, IEccReceiptListener receiptListener)
        {
            //初始化EccSocket
            if (GetInstance().eccSocket != null && GetInstance().eccSocket.Socket.Connected)
            {
                return;
            }

            //实例化Ecc通信对象
            GetInstance().eccSocket = eccSocket;

            //连接服务器
            GetInstance().eccSocket.Connect(ipep, receiptListener);
        }
Beispiel #6
0
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="message"></param>
 /// <param name="listener"></param>
 public void Send(string message, IEccReceiptListener listener)
 {
     if (GetInstance().eccSocket == null)
     {
         //未连接服务器
         listener.Ecc_Sent(listener, message, false);
         throw new UnconnectedServerException();
     }
     else if (!GetInstance().eccSocket.Socket.Connected)
     {
         //未完成与服务器的连接
         listener.Ecc_Sent(listener, message, false);
         throw new UnconnectedCompletionException();
     }
     else
     {
         GetInstance().eccSocket.Send(message, listener);
     }
 }
Beispiel #7
0
        //建立连接
        public static void Connect(EccManager adapter, IEccReceiptListener receiptListener)
        {
            //初始化EccSocket
            if (GetInstance().eccSocket != null && GetInstance().eccSocket.Socket.Connected)
            {
                return;
            }

            //保存Ecc适配器对象,并为其设置ECCIoT实例
            GetInstance().eccManager = adapter;
            adapter.EcciotInstance   = GetInstance();

            //实例化Ecc通信对象
            GetInstance().eccSocket = new EccSocket(GetInstance().eccManager)
            {
                //设置字符编码
                Encoding = Encoding
            };

            //连接服务器
            GetInstance().eccSocket.Connect(ipep, receiptListener);
        }
Beispiel #8
0
        /// <summary>
        ///
        /// </summary>

        public EccSocket(IEccReceiptListener receiptListener, IEccDataReceiveListener dataReceiveListener, IEccExceptionListener exceptionListener)
        {
            EccReceiptListener     = receiptListener;
            EccDataReceiveListener = dataReceiveListener;
            EccExceptionListener   = exceptionListener;
        }
 void IEccReceiptListener.Ecc_Closed(IEccReceiptListener listener)
 {
     listener.Ecc_Closed(listener);
 }
Beispiel #10
0
 void IEccReceiptListener.Ecc_Sent(IEccReceiptListener listener, string msg, bool isSucceed)
 {
     listener.Ecc_Sent(listener, msg, isSucceed);
 }
Beispiel #11
0
 /*操作回执回调接口*/
 void IEccReceiptListener.Ecc_Connection(IEccReceiptListener listener, bool isSucceed)
 {
     listener.Ecc_Connection(listener, isSucceed);
 }