public SocketAsyncSendArgs(ISocketAsyncManager asyncManager)
            : base()
        {
            _asyncManager = asyncManager;
            ID = _asyncManager.ID + "_SEND";

            TotalSent = 0;
        }
        public SocketAsyncReceiveArgs(ISocketAsyncManager asyncManager)
            : base()
        {
            _asyncManager = asyncManager;
            ID = _asyncManager.ID + "_RECV";

            TotalReceived = 0;
        }
Example #3
0
        protected void ReturnToAsyncSocketsPool(ISocketAsyncManager asyncManager)
        {
            _maxConnectionsSemaphore.Release();

            lock (_asyncManagersPool)
            {
                asyncManager.Clear();
                _connectedClients.Remove(asyncManager);
                _asyncManagersPool.Push(asyncManager);
            }
        }
Example #4
0
 private void AsyncManager_ConnectionClosed(ISocketAsyncManager asyncManager)
 {
     ReturnToAsyncSocketsPool(asyncManager);
 }
 public void Push(ISocketAsyncManager item)
 {
     if (item == null) { throw new ArgumentNullException("Items added to a SocketAsyncEventArgsPool cannot be null"); }
     lock (_pool)
     {
         _pool.Push(item);
     }
 }