Ejemplo n.º 1
0
        public void WriteStream(NetStream stream)
        {
            if (stream == null)
            {
                EnsureFitsBits(5);
                Write(0, 4, 14, 22);
                return;
            }
            uint num = (uint)stream.UseBuffedSize();

            if (num < 16)
            {
                EnsureFitsBits((int)(5 + num * 8));
                Write(num, 4, 14, 22);
                for (int i = 0; i < num; i++)
                {
                    Write(stream.buffer[i]);
                }
            }
            else
            {
                Write(num, 4, 14, 22);
                EnsureFitsBytes(stream.UseBuffedSize(), pad: true);
                PadToByte();
                Array.Copy(stream.GetOriginalBuffer(), 0L, buffer, currentByte, num);
                currentByte += (int)num;
            }
        }
Ejemplo n.º 2
0
 public void FlushBuffer(NetTransport transport, bool skipLock = false)
 {
     lock (unreliableStreamLock)
     {
         if (unreliableStream.position != 0)
         {
             unreliableStream.WriteStream(null);
             transport.SendUnreliable(this, unreliableStream.GetOriginalBuffer(), unreliableStream.UseBuffedSize());
             NetGame.instance.sendBps.ReportBits(unreliableStream.position);
             unreliableStream.Seek(0);
         }
     }
 }