SuperSocket.ClientEngine.TcpClientSession.TrySend C# (CSharp) Method

TrySend() public method

public TrySend ( IList segments ) : bool
segments IList
return bool
        public override bool TrySend(IList<ArraySegment<byte>> segments)
        {
            if (segments == null || segments.Count == 0)
            {
                throw new ArgumentNullException("segments");
            }

            for (var i = 0; i < segments.Count; i++)
            {
                var seg = segments[i];
                
                if (seg.Count == 0)
                {
                    throw new Exception("The data piece to be sent cannot be empty.");
                }
            }

            if (!DetectConnected())
            {
                //may be return false? 
                return true;
            }

            var isEnqueued = GetSendingQueue().Enqueue(segments);

            if (Interlocked.CompareExchange(ref m_IsSending, 1, 0) != 0)
                return isEnqueued;

            DequeueSend();

            return isEnqueued;
        }

Same methods

TcpClientSession::TrySend ( ArraySegment segment ) : bool