Example #1
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);
        }
Example #2
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);
     }
 }
Example #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);
 }