Пример #1
0
        private void StartAccept(SocketAsyncEventArgs e)
        {
            if (e == null)
            {
                e            = socketEventPool.CheckOut();
                e.Completed += FinishAccept;
            }
            else
            {
                e.AcceptSocket = null;
            }

            try
            {
                if (!socket.AcceptAsync(e))
                {
                    FinishAccept(this, e);
                }
            }
            catch (ObjectDisposedException)
            {
                e.Completed -= FinishAccept;
                socketEventPool.CheckIn(e);
                // TODO: log
            }
        }