Esempio n. 1
0
        private void Login(string[] message, Socket ClientSocket)
        {
            string username = message[1];
            string password = message[2];
            string confirmation;

            if (database.IsLoggedIn(message[1]))
            {
                confirmation = "LoginF" + "," + "You are already logged in";
                ClientSocket.Send(Encoding.ASCII.GetBytes(confirmation), confirmation.Length, SocketFlags.None);
                messageBox.AppendText(username + " : Failed Login Attempt\n");
            }
            else
            {
                if (database.AuthenticateUser(username, password))
                {
                    confirmation = "LoginS" + "," + username + "," + " You Logged in Successfully";
                    database.AddLogin(username);
                    ClientSocket.Send(Encoding.ASCII.GetBytes(confirmation), confirmation.Length, SocketFlags.None);
                    messageBox.AppendText(username + " : Logged In successfully\n");
                }
                else
                {
                    confirmation = "LoginF" + "," + "Invalid Credentials";
                    ClientSocket.Send(Encoding.ASCII.GetBytes(confirmation), confirmation.Length, SocketFlags.None);
                    messageBox.AppendText("Failed login Attempt\n");
                }
            }
        }
Esempio n. 2
0
        // Leer informacion que llega al servidor
        private void OnIncomingData(ServerClient c, string data)
        {
            string[] aData = data.Split('|');

            //login
            if (c.clientName != null)
            {
                //Program.form.DebugTextBox.Text += "\r\nClient '" + c.clientName + "' sent command: " + data;
            }
            else
            {
                Program.form.DebugTextBox.Text += "\r\nNuevo cliente tratando de unirse al servidor. Solicitud autenticacion.";
                if (aData[0] == "YoSoy")
                {
                    bool authenticated = Database.AuthenticateUser(aData[1], aData[2]);
                    if (!authenticated)
                    {
                        if (!Database.existUser(aData[1]))
                        {
                            Database.addUser(aData[1], aData[2]);
                            c.clientName = aData[1];
                            c.id         = Database.getId(aData[1]);
                            Program.form.DebugTextBox.Text += "\r\nUsuario Autenticado";
                            Broadcast("Autenticado|", c);
                        }
                    }
                    else if (authenticated)
                    {
                        foreach (ServerClient client in clients)
                        {
                            if (aData[1] == client.clientName)
                            {
                                Program.form.DebugTextBox.Text += "\r\nEste usuario ya esta conectado";
                                c.tcp.Close();
                                disconnectList.Add(c);
                                return;
                            }
                        }
                        c.clientName = aData[1];
                        c.id         = Database.getId(aData[1]);
                        Program.form.DebugTextBox.Text += "\r\nUsuario Autenticado";
                        Broadcast("Autenticado|", c);
                    }
                    else
                    {
                        Program.form.DebugTextBox.Text += "\r\nAuntenticacion de usuario fallida. ";
                        c.tcp.Close();
                        disconnectList.Add(c);
                    }
                    return;
                }
            }


            //gameplay commands
            switch (aData[0])
            {
            case "SolicitudSincronizacion":
                SynchronizeUnits(c, aData[1]);
                // SynchronizeBalon(c);
                break;

            case "Jugar":
                Unit unit = new Unit();

                unit.clientName = c.clientName;
                unit.clientId   = c.id;
                //give a new ID to the new units
                int newid = 0;
                //if (c.id%2!=0) unit.unitID = 0;
                //else unit.unitID = 1;
                foreach (Unit u in units)
                {
                    if (u.unitID >= newid)
                    {
                        newid = u.unitID + 1;
                    }
                }

                unit.unitID = newid;



                units.Add(unit);
                if (units.Count == 1)
                {
                    unit.unitPositionX = 3.37f;
                    unit.unitPositionY = 5.5f;
                }
                else if (units.Count == 2)
                {
                    unit.unitPositionX = 14.68f;
                    unit.unitPositionY = 5.5f;
                }
                Broadcast("UnidadAgregada|" + c.clientName + "|" + unit.unitID + "|" + unit.unitPositionX + "|" + unit.unitPositionY + "|" + c.id, clients);


                break;

            case "Moving":

                if (aData[1].Equals("balon"))
                {
                    Broadcast("ballMoved|" + c.clientName + "|" + aData[1] + "|" + aData[2] + "|" + aData[3], clients);
                    int ball;
                    Int32.TryParse(aData[1], out ball);
                    float X;
                    float Y;

                    float.TryParse(aData[2], out X);
                    float.TryParse(aData[3], out Y);
                    balon.ballPositionX = X;
                    balon.ballPositionY = Y;
                    balon.clientName    = c.clientName;
                }
                else
                {
                    Broadcast("UnidadMovida|" + c.clientName + "|" + aData[1] + "|" + aData[2] + "|" + aData[3], clients);
                    int id;
                    Int32.TryParse(aData[1], out id);
                    float parsedX;
                    float parsedY;

                    float.TryParse(aData[2], out parsedX);
                    float.TryParse(aData[3], out parsedY);

                    foreach (Unit u in units)
                    {
                        if (u.unitID == id)
                        {
                            // Console.WriteLine(u.unitID+"");
                            // Console.WriteLine(parsedX + "");
                            // Console.WriteLine(parsedY + "");
                            u.unitPositionX = parsedX;
                            u.unitPositionY = parsedY;
                        }
                    }

                    //Program.form.DebugTextBox.Text += "\r\n" + parsedX + "  " + parsedY;
                }

                break;

            case "Goal":
                string GoalsAmount = aData[1];
                Broadcast("ChangeMarker|" + c.clientName + "|" + GoalsAmount, clients);

                break;



            default:
                //Program.form.DebugTextBox.Text += "\r\nReceived unknown signal => skipping";
                break;
            }
        }