public Comando(string accao, Cliente ligacao, RoomDesc sala, string idMapa) { _accao = accao; _ligacao = ligacao; _sala = sala; _idMapa = idMapa; }
/// <summary> /// Executa o comando Login /// </summary> /// <returns></returns> public static Cliente regista(ref bool aceite, string portoCliente, string portoServidor, string ipServidor, string nickName, string ipLocal) { //envia excepção em caso de erro ValidaLogin(ipServidor, nickName); //envia excepção em caso de erro int portoServidorInteiro = validaPorto(portoServidor); int portoClienteInteiro = validaPorto(portoCliente); Cliente _ligacao; //cria a ligação com o servidor _ligacao = new Cliente(ipServidor, portoServidorInteiro, portoClienteInteiro, nickName); //efectua Login no servidor aceite = _ligacao.RegistaCliente(ipLocal, "" + portoCliente, nickName); return _ligacao; }
/// <summary> /// Login do cliente no servidor /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RealizaLogin(object sender, EventArgs e) { bool aceite = false; try { _cliente = Login.regista(ref aceite, _tbPortoCliente.Text, _tbPortoServidor.Text, _tbIpServidor.Text, _tbNickName.Text, _tbIpLocal.Text); if (aceite == false) { EscreveLog("Login Rejeitado, nick já usado no servidor"); Cliente.DestroiPorto(); return; } //Caso tudo tenha corrido com sucesso MMGCliente.EscreveLog("Ligacao ao servidor com sucesso\r\n"); //Actualiza o nickName na ligacao com o servidor _cliente.NickName = _tbNickName.Text; _btLogin.Enabled = false; //Torna enable a listbox que permite a pesquisa de jogos _lbListaJogos.Enabled = true; //Torna enable o butão para pesquisar jogos _btPesquisaJogos.Enabled = true; //Permite a criação de novos jogos _btCriarJogo.Enabled = true; _btMudarServidor.Enabled = true; //disable _tbIpLocal.Enabled = false; _tbNickName.Enabled = false; _tbPortoCliente.Enabled = false; _tbPortoServidor.Enabled = false; _tbIpServidor.Enabled = false; } catch (DadosInvalidosException exception) { MMGCliente.EscreveLog(exception.Message); } catch (LigacaoException ex) { MMGCliente.EscreveLog(ex.Message); return; } catch (System.Runtime.Remoting.RemotingException excep) { //So parar tirar o warning excep.Equals(""); MMGCliente.EscreveLog("Nao foi possivel comunicar com esse Servidor... IP/Porto Errado?? "); } }