Exemplo n.º 1
0
 private void Disconnect()
 {
     try
     {
         Protocolo msgToSend = new Protocolo();
         msgToSend.strMensagem = null;
         msgToSend.strElemento = null;
         msgToSend.cmdAcao = Acao.Desconectar;
         byte[] b = msgToSend.ToByte();
         foreach (Socket socket in clientList)
         {
             socket.BeginSend(b, 0, b.Length, SocketFlags.None, new AsyncCallback(OnSend), socket);
         }
         this.serverSocket.Disconnect(false);
         this.serverSocket.Close();
     }
     catch (ObjectDisposedException)
     { }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Servidor FormClosing", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Exemplo n.º 2
0
        private void OnReceive(IAsyncResult ar)
        {
            try
            {
                Socket clientSocket = (Socket)ar.AsyncState;
                clientSocket.EndReceive(ar);

                Protocolo msgReceived = new Protocolo(byteData);
                Protocolo msgToSend = new Protocolo();

                byte[] msg = new byte[1024];

                string elemento = msgReceived.strElemento;
                string acao = msgReceived.cmdAcao.ToString();

                msgToSend.strElemento = elemento;
                msgToSend.cmdAcao = msgReceived.cmdAcao;
                msgToSend.strMensagem = null;

                if (acao == "Abrir")
                {

                    switch (elemento)
                    {

                        case "Janela 1":
                            if (this.estadoElementos.eeJanela1 == "Aberta")
                            {
                                msgToSend.strMensagem = "A Janela 1 já está aberta!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela1.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                    this.estadoElementos.eeJanela1 = "Aberta";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 2":
                            if (this.estadoElementos.eeJanela2 == "Aberta")
                            {
                                msgToSend.strMensagem = "A " + elemento + " já está aberta!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela2.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                    this.estadoElementos.eeJanela2 = "Aberta";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 3":
                            try
                            {
                                this.pnJanela3.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela3 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 4":
                            try
                            {
                                this.pnJanela4.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela4 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 5":
                            try
                            {
                                this.pnJanela5.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela5 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 6":
                            try
                            {
                                this.pnJanela6.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela6 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 7":
                            try
                            {
                                this.pnJanela7.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela7 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 8":
                            try
                            {
                                this.pnJanela8.BackgroundImage = Image.FromFile(@"imagens/janelaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eeJanela8 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Porta 1":
                            try
                            {
                                this.pnPorta1.BackgroundImage = Image.FromFile(@"imagens/portaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eePorta1 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!", "Servidor");
                            }
                            break;

                        case "Porta 2":
                            try
                            {
                                this.pnPorta2.BackgroundImage = Image.FromFile(@"imagens/portaAberta.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi aberta!";
                                this.estadoElementos.eePorta2 = "Aberta";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!", "Servidor");
                            }
                            break;
                    }
                }
                if (acao == "Fechar")
                {
                    switch (elemento)
                    {
                        case "Janela 1":
                            try
                            {
                                this.pnJanela1.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela1 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 2":
                            try
                            {
                                this.pnJanela2.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela2 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 3":
                            try
                            {
                                this.pnJanela3.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela3 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 4":
                            try
                            {
                                this.pnJanela4.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela4 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 5":
                            try
                            {
                                this.pnJanela5.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela5 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 6":
                            try
                            {
                                this.pnJanela6.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela6 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 7":
                            try
                            {
                                this.pnJanela7.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela7 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Janela 8":
                            try
                            {
                                this.pnJanela8.BackgroundImage = Image.FromFile(@"imagens/janelaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eeJanela8 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!","Servidor");
                            }
                            break;

                        case "Porta 1":
                            try
                            {
                                this.pnPorta1.BackgroundImage = Image.FromFile(@"imagens/portaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eePorta1 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!", "Servidor");
                            }
                            break;

                        case "Porta 2":
                            try
                            {
                                this.pnPorta2.BackgroundImage = Image.FromFile(@"imagens/portaFechada.gif");
                                msgToSend.strMensagem = "A " + elemento + " foi fechada!";
                                this.estadoElementos.eePorta2 = "Fechada";
                            }
                            catch (System.IO.FileNotFoundException)
                            {
                                MessageBox.Show("Imagem não encontrada!", "Servidor");
                            }
                            break;
                    }
                }
                if(acao == "Travar")
                {
                    switch (elemento)
                    {
                        case "Janela 1":
                            if (this.estadoElementos.eeJanela1 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela1.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela1 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 2":
                            if (this.estadoElementos.eeJanela2 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela2.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela2 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 3":
                            if (this.estadoElementos.eeJanela3 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela3.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela3 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 4":
                            if (this.estadoElementos.eeJanela4 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela4.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela4 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 5":
                            if (this.estadoElementos.eeJanela5 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela5.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela5 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 6":
                            if (this.estadoElementos.eeJanela6 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela6.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela6 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 7":
                            if (this.estadoElementos.eeJanela7 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela7.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela7 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Janela 8":
                            if (this.estadoElementos.eeJanela8 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a janela, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnJanela8.BackgroundImage = Image.FromFile(@"imagens/janelaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela8 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Porta 1":
                            if (this.estadoElementos.eePorta1 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a porta, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnPorta1.BackgroundImage = Image.FromFile(@"imagens/portaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela8 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;

                        case "Porta 2":
                            if (this.estadoElementos.eePorta2 == "Aberta")
                            {
                                msgToSend.strMensagem = "Para travar a porta, ela precisa estar fechada!";
                            }
                            else
                            {
                                try
                                {
                                    this.pnPorta2.BackgroundImage = Image.FromFile(@"imagens/portaTravada.gif");
                                    msgToSend.strMensagem = "A " + elemento + " foi travada!";
                                    this.estadoElementos.eeJanela8 = "Travada";
                                }
                                catch (System.IO.FileNotFoundException)
                                {
                                    MessageBox.Show("Imagem não encontrada!", "Servidor");
                                }
                            }
                            break;
                    }

                }

                if (acao == "Desconectar")
                {
                    int indice = 0;
                    foreach(Socket socket in clientList)
                    {
                        if(socket == clientSocket)
                        {
                            this.clientList.RemoveAt(indice);
                            break;
                        }
                        ++indice;
                    }
                    clientSocket.Close();
                    MessageBox.Show("Um cliente desconectou...", "Servidor");
                }
                else
                {
                    msg = msgToSend.ToByte();
                    foreach (Socket socket in clientList)
                    {
                        socket.BeginSend(msg, 0, msg.Length, SocketFlags.None, new AsyncCallback(OnSend), socket);
                    }
                    clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), clientSocket);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Servidor OnReceive", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }