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); }
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); }