예제 #1
0
        clsUser newUser(newUserRequest num, NetworkStream stream)
        {
            newUserResponse nur = new newUserResponse();

            if (users.Keys.Contains(num.name))
            {
                nur.okey   = false;
                nur.reason = "Игрок с таким именем уже играет на сервере.";
                nur.sendMessage(stream);
                stream.Close();
                return(null);
            }
            else
            {
                clsUser user = new clsUser();
                user.Color = num.color;
                user.Name  = num.name;
                user.Game  = games[num.mapName];
                lock (games){
                    games[num.mapName].Users.Add(user.Name, user);
                    users.Add(user.Name, user);
                }
                nur.okey = true;
                nur.sendMessage(stream);
                return(user);
            }
        }
예제 #2
0
        private bool connectToServer()
        {
            newUserRequest nur = new newUserRequest();

            nur.name    = txtName.Text;
            nur.mapName = txtGame.Text;
            nur.color   = lblColor.BackColor;
            try {
                mainClient.Connect(txtServer.Text, 7373);
            } catch (Exception ex) {
                MessageBox.Show(ex.Message, "Ошибка подключения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                mainClient.Close();
                return(false);
            }
            nur.sendMessage(mainClient.GetStream());
            newUserResponse nu_resp = new newUserResponse();

            nu_resp = nu_resp.readMessage(mainClient.GetStream()) as newUserResponse;
            if (nu_resp.okey == false)
            {
                MessageBox.Show(nu_resp.reason, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            return(true);
        }