/// <summary> /// Evento de click no botão de conectar /// </summary> /// <param name="_par_objSender">Objeto que disparou o evento</param> /// <param name="_par_objEventArgs">Argumentos enviados</param> private void BtnConectar_Click(object _par_objSender, EventArgs _par_objEventArgs) { if (txtIP.Text.Equals(string.Empty)) { MessageBox.Show("Informe o endereço IP."); txtIP.Focus(); return; } try { var enderecoIP = IPAddress.Parse(txtIP.Text); var mainServidor = new ServerClass(enderecoIP); ServerClass.StatusChanged += new StatusChangedEventHandler(StatusChanged); mainServidor.StartToListen(Convert.ToInt32(TxtPort.Text)); txtLog.AppendText("Monitorando as conexões...\r\n"); } catch (Exception _par_objException) { MessageBox.Show("Erro de conexão : " + _par_objException.Message); } }
/// <summary> /// Aceita o usuário que está tentando conectar /// </summary> private void AcceptClient() { srReceptor = new StreamReader(tcpCliente.GetStream()); swEnviador = new StreamWriter(tcpCliente.GetStream()); usuarioAtual = srReceptor.ReadLine(); if (usuarioAtual != "") { if (ServerClass.Users.Contains(usuarioAtual)) { swEnviador.WriteLine(JsonConvert.SerializeObject(new USP.SI.RC.Util.Message { Type = USP.SI.RC.Util.Type.Control, Text = "0|Este nome de usuário já existe." })); swEnviador.Flush(); CloseConnection(); return; } else if (usuarioAtual == "Administrator") { swEnviador.WriteLine(JsonConvert.SerializeObject(new Util.Message { Type = Util.Type.Control, Text = "0|Este nome de usuário é reservado." })); swEnviador.Flush(); CloseConnection(); return; } else { swEnviador.WriteLine(JsonConvert.SerializeObject(new Util.Message { Type = Util.Type.Control, Text = "1|Conectou com sucesso." })); swEnviador.Flush(); ServerClass.IncluiUsuario(tcpCliente, usuarioAtual); } } else { CloseConnection(); return; } try { while ((strResposta = srReceptor.ReadLine()) != "") { if (strResposta == null) { ServerClass.RemoveUsuario(tcpCliente); } else { if (strResposta.ToUpper().Equals(ServerClass.TurnWord)) { ServerClass.IsRight = true; ServerClass.SendMessageAsAdmin(usuarioAtual + " acertou!"); } ServerClass.SendMessage(usuarioAtual, strResposta); } } } catch { ServerClass.RemoveUsuario(tcpCliente); } }