Beispiel #1
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;
 }
 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;
     }
 }