示例#1
0
 /// <summary>
 /// 关闭与服务器的连接
 /// </summary>
 public void Close()
 {
     try
     {
         _isRec = false;
         _socket.BeginDisconnect(false, asyncCallback =>
         {
             try
             {
                 _socket.EndDisconnect(asyncCallback);
             }
             catch (Exception ex)
             {
                 HandleException?.BeginInvoke(ex, null, null);
             }
             finally
             {
                 _socket.Dispose();
             }
         }, null);
     }
     catch (Exception ex)
     {
         HandleException?.BeginInvoke(ex, null, null);
     }
     finally
     {
         HandleClientClose?.BeginInvoke(this, null, null);
     }
 }
示例#2
0
 /// <summary>
 /// 关闭与服务器的连接
 /// </summary>
 public void Close()
 {
     try
     {
         _isRec = false;
         _socket.Disconnect(false);
         HandleClientClose?.BeginInvoke(this, null, null);
     }
     catch (Exception ex)
     {
         HandleException?.BeginInvoke(ex, null, null);
     }
     finally
     {
         _socket.Dispose();
         GC.Collect();
     }
 }
示例#3
0
        /// <summary>
        /// 关闭当前连接
        /// </summary>
        public void Close()
        {
            if (_isClosed)
            {
                return;
            }
            try
            {
                _isClosed = true;
                _server.RemoveConnection(this);

                _isRec = false;
                _socket.BeginDisconnect(false, (asyncCallback) =>
                {
                    try
                    {
                        _socket.EndDisconnect(asyncCallback);
                    }
                    catch (Exception ex)
                    {
                        HandleException?.BeginInvoke(ex, null, null);
                    }
                    finally
                    {
                        _socket.Dispose();
                    }
                }, null);
            }
            catch (Exception ex)
            {
                HandleException?.BeginInvoke(ex, null, null);
            }
            finally
            {
                HandleClientClose?.BeginInvoke(_server, this, null, null);
            }
        }