Esempio n. 1
0
        /// <summary>
        /// Updates the connection every tick.
        /// </summary>
        public void Update()
        {
            //If I don't have a list of all of the players, send it to the client when they connect.
            if (initializedPlayers == false)
            {
                var msg = client.CreateMessage();
                PacketTypes.writeToMessage(msg, PacketType.RequestAllPlayers);
                client.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, 0);
            }
            NetIncomingMessage inc;

            while ((inc = client.ReadMessage()) != null)
            {
                var packetType = PacketTypes.readPacketType(inc);
                switch (packetType)
                {
                case PacketType.Login:
                    break;

                case PacketType.NewPlayer:
                    Player oPlayer = Player.createFromIncomingNetMessageVerbose(inc);
                    otherPlayers.Add(oPlayer);
                    break;

                case PacketType.AllPlayers:
                    ReceiveAllPlayers(inc);
                    break;

                case PacketType.RecieveAllPlayers:     //Code that executes when the client requests all of the players from the server.
                    initializedPlayers = inc.ReadBoolean();
                    ReceiveAllPlayers(inc);
                    break;

                default:
                    break;
                    //throw new Exception("Argument out of range: Not enough variety in packet types: Failed packet type is:" + packetType);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Run the server.
        /// </summary>
        public void Run()
        {
            Console.WriteLine("Starting server...");


            while (true)
            {
                NetIncomingMessage inc;
                if ((inc = server.ReadMessage()) == null)
                {
                    continue;
                }

                switch (inc.MessageType)
                {
                case NetIncomingMessageType.Error:
                    break;

                case NetIncomingMessageType.StatusChanged:
                    break;

                case NetIncomingMessageType.UnconnectedData:
                    break;

                case NetIncomingMessageType.ConnectionApproval:
                    ConnectionApproval(inc);
                    break;

                case NetIncomingMessageType.Data:
                    var packet = PacketTypes.readPacketType(inc);
                    if (packet == PacketType.RequestAllPlayers)
                    {
                        Console.WriteLine("SEND THE DATA!!!");
                        SendFullPlayerList(inc);
                    }

                    break;

                case NetIncomingMessageType.Receipt:
                    break;

                case NetIncomingMessageType.DiscoveryRequest:
                    break;

                case NetIncomingMessageType.DiscoveryResponse:
                    break;

                case NetIncomingMessageType.VerboseDebugMessage:
                    break;

                case NetIncomingMessageType.DebugMessage:
                    break;

                case NetIncomingMessageType.WarningMessage:
                    var str = inc.ReadString();
                    Console.Write("WARNING" + str);
                    break;

                case NetIncomingMessageType.ErrorMessage:
                    break;

                case NetIncomingMessageType.NatIntroductionSuccess:
                    break;

                case NetIncomingMessageType.ConnectionLatencyUpdated:
                    break;
                }

                var ok = server.Connections;
                foreach (var v in ok)
                {
                    Console.WriteLine(v);
                }
            }
        }