Ejemplo n.º 1
0
        public void Run()
        {
            // Client initialization
            config = new NetPeerConfiguration("stryferpg");
            client = new NetClient(config);
            client.Start();
            client.Connect("localhost", 1234);

            handler = new LoginMessageHandler();

            // Messages receipt
            NetIncomingMessage message;

            while (!stop)
            {
                while ((message = client.ReadMessage()) != null)
                {
                    switch (message.MessageType)
                    {
                    case NetIncomingMessageType.Data:
                        SROrderMessage msg = NetworkSerializer.DeserializeObject <SROrderMessage>(message.ReadBytes(message.LengthBytes));
                        handler.Handle(msg);
                        break;

                    case NetIncomingMessageType.StatusChanged:
                        switch (message.SenderConnection.Status)
                        {
                        case NetConnectionStatus.Connected:
                            Console.WriteLine("Connected");
                            Console.WriteLine("Asking for server list...");

                            SRActionMessage action = new SRActionMessage(ActionType.GetServerList, ServiceType.Login);
                            SendMessage(action);
                            break;
                        }

                        break;

                    case NetIncomingMessageType.DebugMessage:
                        Console.WriteLine(message.ReadString());
                        break;

                    default:
                        Console.WriteLine("unhandled message with type: "
                                          + message.MessageType);
                        break;
                    }
                }

                Thread.Sleep(1);
            }
        }
Ejemplo n.º 2
0
        public void Run()
        {
            // Server initialization
            config      = new NetPeerConfiguration("stryferpg");
            config.Port = 1234;

            server = new NetServer(config);
            server.Start();

            //TODO: services initialization

            // Messages receipt
            bool stop = false;
            NetIncomingMessage message;

            while (!stop)
            {
                while ((message = server.ReadMessage()) != null)
                {
                    switch (message.MessageType)
                    {
                    case NetIncomingMessageType.Data:
                        SRActionMessage action = NetworkSerializer.DeserializeObject <SRActionMessage>(message.ReadBytes(message.LengthBytes));

                        switch (action.serviceType)
                        {
                        case ServiceType.Login:
                            LoginService.Instance.Handle(action, message.SenderConnection);
                            break;

                        case ServiceType.Char:
                            break;

                        case ServiceType.Map:
                            MapService.Instance.Handle(action, message.SenderConnection);
                            break;
                        }

                        break;

                    case NetIncomingMessageType.StatusChanged:
                        Console.WriteLine("StatusChanged");
                        switch (message.SenderConnection.Status)
                        {
                        case NetConnectionStatus.Connected:
                            Console.WriteLine("Connected");
                            break;
                        }

                        break;

                    case NetIncomingMessageType.DebugMessage:
                        Console.WriteLine(message.ReadString());
                        break;

                    default:
                        Console.WriteLine("unhandled message with type: "
                                          + message.MessageType);
                        break;
                    }
                }

                //stop = Console.ReadKey().Key == ConsoleKey.S;
                Thread.Sleep(1);
            }
        }