Beispiel #1
0
 public MultiplexConnectionOutputPump(BufferRead bufferRead, BufferWrite bufferWrite, int connectionId)
 {
     this.bufferRead   = bufferRead;
     this.bufferWrite  = bufferWrite;
     inputBuffer       = new byte[65536];
     this.connectionId = connectionId;
 }
Beispiel #2
0
        private bool ProcessControlMessage(ENetCommand cmd, BufferRead buf)
        {
            if (cmd == ENetCommand.NetNop)
            {
                return(true);
            }

            if (cmd == ENetCommand.NetDisconnect)
            {
                var reason = buf.ReadString();
                _messageHandler.ConnectionClosing(reason);
                return(false);
            }

            if (cmd == ENetCommand.NetFile)
            {
                var transferId = buf.ReadUInt();
                var fileName   = buf.ReadString();

                if (buf.ReadByte() != 0 && IsSafeFileToDownload(fileName))
                {
                    _messageHandler.FileRequested(fileName, transferId);
                }
                else
                {
                    _messageHandler.FileDenied(fileName, transferId);
                }

                return(true);
            }

            Console.WriteLine("NetChannel: Received bad control command type {0} from {1}.", (ushort)cmd, _remoteAddress);
            return(false);
        }
 public MultiplexConnectionOutputPump(BufferRead bufferRead, BufferWrite bufferWrite, int connectionId)
 {
     this.bufferRead = bufferRead;
     this.bufferWrite = bufferWrite;
     this.inputBuffer = new byte[65536];
     this.connectionId = connectionId;
 }
        public override bool ReadFromBuffer(BufferRead buffer)
        {
            Tick                      = buffer.ReadInt();
            HostFrameTime             = buffer.ReadULong() / Networking.NetTickScaleUp;
            HostFrameTimeStdDeviation = buffer.ReadULong() / Networking.NetTickScaleUp;

            return(true);
        }
Beispiel #5
0
 public FramingOutputPump(BufferRead bufferRead, BufferWrite bufferWrite, int pingFrequency, EventTraceActivity activity, Uri uri)
 {
     this.bufferRead    = bufferRead;
     this.bufferWrite   = bufferWrite;
     this.inputBuffer   = new byte[65536];
     this.pingFrequency = pingFrequency;
     this.activity      = activity;
     this.uri           = uri;
 }
 public MultiplexConnectionInputPump(BufferRead bufferRead, MultiplexConnectionFactoryHandler connectionFactory, object callbackState)
 {
     this.callbackState = callbackState;
     this.bufferRead = bufferRead;
     this.connectionFactory = connectionFactory;
     this.connections = new Dictionary<int, MultiplexedConnection>();
     this.inputBuffer = new byte[65536];
     this.preambleBuffer = new byte[sizeof(int) + sizeof(ushort)];
     this.stopInput = new ManualResetEvent(false);
 }
 public FramingInputPump(BufferRead bufferRead, BufferWrite bufferWrite, Action bufferDone, EventTraceActivity activity, Uri uri)
 {
     this.bufferRead     = bufferRead;
     this.bufferWrite    = bufferWrite;
     this.bufferDone     = bufferDone;
     this.inputBuffer    = new byte[65536];
     this.preambleBuffer = new byte[2];
     this.Activity       = activity;
     this.uri            = uri;
 }
 public MultiplexConnectionInputPump(BufferRead bufferRead, MultiplexConnectionFactoryHandler connectionFactory, object callbackState)
 {
     this.callbackState     = callbackState;
     this.bufferRead        = bufferRead;
     this.connectionFactory = connectionFactory;
     connections            = new Dictionary <int, MultiplexedConnection>();
     inputBuffer            = new byte[65536];
     preambleBuffer         = new byte[sizeof(int) + sizeof(ushort)];
     stopInput = new ManualResetEvent(false);
 }
 public MultiplexConnectionInputPump(BufferRead bufferRead, MultiplexConnectionFactoryHandler connectionFactory, object callbackState)
 {
     this.callbackState     = callbackState;
     this.bufferRead        = bufferRead;
     this.connectionFactory = connectionFactory;
     connections            = new Dictionary <int, MultiplexedConnection>();
     inputBuffer            = new byte[65536];
     // Each frame is prefixed with a 32-bit connectionId and a 16-bit length value.
     preambleBuffer = new byte[sizeof(int) + sizeof(ushort)];
     stopInput      = new ManualResetEvent(false);
 }
Beispiel #10
0
        public bool ProcessMessages(BufferRead buf)
        {
            while (true)
            {
                if (buf.GetNumBitsLeft() <= 0)
                {
                    break;
                }

                var cmd = buf.ReadUShort();
                if (cmd <= (ushort)ENetCommand.NetFile)
                {
                    if (!ProcessControlMessage((ENetCommand)cmd, buf))
                    {
                        return(false);
                    }

                    continue;
                }

                var netMsg = FindMessage(cmd);
                if (netMsg != null)
                {
                    var msgName = netMsg.GetName();
                    if (!netMsg.ReadFromBuffer(buf))
                    {
                        Console.WriteLine("NetChannel: Failed reading message {0} from {1}", msgName, _remoteAddress);
                        return(false);
                    }

                    var ret = netMsg.Process();
                    if (!ret)
                    {
                        Console.WriteLine("NetChannel: Failed processing message {0}.", msgName);
                        return(false);
                    }
                }
                else
                {
                    Console.WriteLine("NetChannel: Unknown net message ({0}) from {1}", cmd, _remoteAddress);
                    return(false);
                }
            }

            return(true);
        }
Beispiel #11
0
 public BufferPump(BufferRead bufferRead, BufferWrite bufferWrite, int bufferSize)
 {
     this.bufferRead = bufferRead;
     this.bufferWrite = bufferWrite;
     this.inputBuffer = new byte[bufferSize];
 }
Beispiel #12
0
 public BufferPump(BufferRead bufferRead, BufferWrite bufferWrite)
     : this(bufferRead, bufferWrite, 65536)
 {
 }
Beispiel #13
0
 public void Assign(EndPoint from, int len, byte[] data)
 {
     From    = from;
     Message = new BufferRead(data, len);
 }
Beispiel #14
0
 public BufferPump(BufferRead bufferRead, BufferWrite bufferWrite, int bufferSize)
 {
     this.bufferRead  = bufferRead;
     this.bufferWrite = bufferWrite;
     inputBuffer      = new byte[bufferSize];
 }
Beispiel #15
0
 public BufferPump(BufferRead bufferRead, BufferWrite bufferWrite)
     : this(bufferRead, bufferWrite, 65536)
 {
 }
Beispiel #16
0
        public override bool ReadFromBuffer(BufferRead buffer)
        {
            _state = (ESignonState)buffer.ReadByte();

            return(true);
        }
Beispiel #17
0
 public abstract bool ReadFromBuffer(BufferRead buffer);
Beispiel #18
0
 public NetPacket()
 {
     From    = new IPEndPoint(IPAddress.Any, 0);
     Message = null;
 }