Ejemplo n.º 1
0
        public int Send(byte[] data, int index, int length)
        {
            if (mSocket == null)
            {
                return(-1);
            }

            var waitsnd = mKCP.WaitSnd;

            if (waitsnd < mKCP.SndWnd && waitsnd < mKCP.RmtWnd)
            {
                var sendBytes = 0;
                do
                {
                    var n = Math.Min((int)mKCP.Mss, length - sendBytes);
                    mKCP.Send(data, index + sendBytes, n);
                    sendBytes += n;
                } while (sendBytes < length);

                waitsnd = mKCP.WaitSnd;
                if (waitsnd >= mKCP.SndWnd || waitsnd >= mKCP.RmtWnd || !WriteDelay)
                {
                    mKCP.Flush(false);
                }

                return(length);
            }

            return(0);
        }
Ejemplo n.º 2
0
        public int Send(byte[] data, int index, int length)
        {
            if (mSocket == null)
            {
                return(-1);
            }

            if (mKCP.WaitSnd >= mKCP.SndWnd)
            {
                return(0);
            }

            mNextUpdateTime = 0;

            var n = mKCP.Send(data, index, length);

            if (mKCP.WaitSnd >= mKCP.SndWnd || !WriteDelay)
            {
                mKCP.Flush(false);
            }
            return(n);
        }