Example #1
0
        internal void ReceiveFromPeer(NetPacket packet, NetEndPoint remoteEndPoint)
        {
            NetPeer fromPeer;

            lock (_peers)
            {
                _peers.TryGetValue(remoteEndPoint, out fromPeer);
            }
            if (fromPeer != null)
            {
                NetUtils.DebugWrite(ConsoleColor.Cyan, "[NM] Received message");
                var netEvent = CreateEvent(NetEventType.Receive);
                netEvent.Peer           = fromPeer;
                netEvent.RemoteEndPoint = fromPeer.EndPoint;
                switch (packet.Property)
                {
                case PacketProperty.Unreliable:
                    netEvent.DeliveryMethod = DeliveryMethod.Unreliable;
                    break;

                case PacketProperty.ReliableUnordered:
                    netEvent.DeliveryMethod = DeliveryMethod.ReliableUnordered;
                    break;

                case PacketProperty.ReliableOrdered:
                    netEvent.DeliveryMethod = DeliveryMethod.ReliableOrdered;
                    break;

                case PacketProperty.Sequenced:
                    netEvent.DeliveryMethod = DeliveryMethod.Sequenced;
                    break;

                case PacketProperty.ReliableSequenced:
                    //TODO: netEvent.DeliveryMethod = DeliveryMethod.ReliableSequenced;
                    break;
                }
                netEvent.DataReader.SetSource(packet.CopyPacketData());
                EnqueueEvent(netEvent);
            }
        }