Beispiel #1
0
 public static bool EnviarArquivoViaSocket(string PathCompletoComArquivo, int Codigo, int Versao, string EnderecoIPEnvia, string EnderecoIPResposta, int PortaEnvia, int PortaResposta, bool RetornoAssinado, out string MsgCliente)
 {
     try
     {
         string       caminhoArquivo  = Path.GetDirectoryName(PathCompletoComArquivo) + "\\";
         string       nomeArquivo     = Path.GetFileName(PathCompletoComArquivo);
         string       caminhoCompleto = caminhoArquivo + nomeArquivo;
         byte[]       fileData        = File.ReadAllBytes(caminhoCompleto);
         FileTransfer oFT             = new FileTransfer();
         oFT.Codigo                = Codigo;
         oFT.Versao                = Versao;
         oFT.FileName              = nomeArquivo;
         oFT.IPResposta            = EnderecoIPResposta;
         oFT.PortaRespostaAssinado = PortaResposta;
         oFT.FileBase64            = Convert.ToBase64String(fileData);
         oFT.RetornoAssinado       = RetornoAssinado;
         oFT.UsuarioAutenticado    = "1495";
         byte[]    clientData   = ConverterObjeto.SerializaObjetoXMLByteArray(oFT);
         TcpClient clientSocket = new TcpClient();
         clientSocket.ReceiveBufferSize = 1000;
         clientSocket.SendBufferSize    = 1000;
         clientSocket.Connect(EnderecoIPEnvia, PortaEnvia);
         NetworkStream serverStream = clientSocket.GetStream();
         serverStream.Write(clientData, 0, clientData.Length);
         serverStream.Flush();
         clientSocket.Close();
         MsgCliente = "Arquivo [" + caminhoCompleto + "] transferido.";
         return(true);
     }
     catch (Exception ex)
     {
         MsgCliente = ex.Message + ".";
         return(false);
     }
 }
Beispiel #2
0
        private void IniciarServidor(int Porta)
        {
            byte[] bytesFrom      = new byte[10000];
            string dataFromClient = null;

            Byte[] sendBytes      = null;
            string serverResponse = null;
            string MeuIP          = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();

            if (MeuIP == "::1")
            {
                MeuIP = Dns.GetHostAddresses(Dns.GetHostName())[1].ToString();
            }
            TcpListener serverSocket = new TcpListener(IPAddress.Parse(MeuIP), Porta);

            serverSocket.Start();
            int counter = 0;

            while (!ParaServidor)
            {
                counter += 1;
                TcpClient clientSocket = default(TcpClient);
                clientSocket = serverSocket.AcceptTcpClient();
                clientSocket.ReceiveBufferSize = 10000;
                string str;
                using (NetworkStream stream = clientSocket.GetStream())
                {
                    byte[] data = new byte[1024];
                    using (MemoryStream ms = new MemoryStream())
                    {
                        int numBytesRead;
                        while ((numBytesRead = stream.Read(data, 0, data.Length)) > 0)
                        {
                            ms.Write(data, 0, numBytesRead);
                        }
                        str = Encoding.ASCII.GetString(ms.ToArray(), 0, (int)ms.Length);
                    }
                    oFT = (FileTransfer)ConverterObjeto.RetornaObjetoFT(str);

                    //FileStream FS = new FileStream("C:\\Lixo.txt", FileMode.OpenOrCreate);
                    //Byte[] info = ASCIIEncoding.ASCII.GetBytes(str);
                    //FS.Write(info, 0, info.Length);
                    //FS.Close();


                    ServerMsg   = "Arquivo recebido";
                    ArquivoNovo = true;
                }
                clientSocket.Close();
            }
            serverSocket.Stop();
        }
Beispiel #3
0
        public static string EnviaDados(IComunicacao Mensagem, string IP, int Porta = 27525)
        {
            TcpClient clientSocket = new TcpClient();

            clientSocket.ReceiveBufferSize = 1000;
            clientSocket.Connect(IP, Porta);
            string        ObjetoSerializado = ConverterObjeto.SerializaObjeto(Mensagem);
            NetworkStream serverStream      = clientSocket.GetStream();

            byte[] outStream = System.Text.Encoding.ASCII.GetBytes(ObjetoSerializado);
            serverStream.Write(outStream, 0, outStream.Length);
            serverStream.Flush();
            byte[] inStream = new byte[1000];
            serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
            string returndata = System.Text.Encoding.ASCII.GetString(inStream);

            returndata = returndata.Substring(0, returndata.IndexOf("\0"));
            clientSocket.Close();
            return(returndata);
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            eTipoMensagem TipoMensagem;

            bool RecebeuMensagem = false;

            timer1.Enabled = false;


            string Mensagem = "";


            //MENSAGEM VIA WEBSOCKET
            if (oWS.MensagemNova)
            {
                Mensagem         = oWS.Mensagem;
                oWS.MensagemNova = false;
                oWS.Mensagem     = "";
                TipoMensagem     = eTipoMensagem.WebSocket;
                RecebeuMensagem  = true;
            }

            //MENSAGEM VIA SOCKET
            if (INB.Assinador.Integracao.Service.SocketWS.MensagemNova)
            {
                Mensagem = INB.Assinador.Integracao.Service.SocketWS.Mensagem;
                INB.Assinador.Integracao.Service.SocketWS.MensagemNova = false;
                INB.Assinador.Integracao.Service.SocketWS.Mensagem     = "";
                TipoMensagem    = eTipoMensagem.WebSocket;
                RecebeuMensagem = true;
            }

            if (RecebeuMensagem)
            {
                Comunicacao oCom = null;

                //CONVERTE O TEXTO RECEBIDO EM OBJETO
                try
                {
                    if (Ignorar(Mensagem))
                    {
                        timer1.Enabled = true;
                        return;
                    }
                    else
                    {
                        this.Visible = true;
                        this.Focus();
                        this.WindowState = FormWindowState.Normal;
                        this.BringToFront();
                        oCom = (Comunicacao)ConverterObjeto.RetornaObjeto(Mensagem);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Um erro ocorreu ao converter o objeto para o tipo Comunicacao. O processo precisa ser repetido e se o erro persistir, notifique o Help-Desk | Mensagem REcebida: " + Mensagem + " | Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    timer1.Enabled = true;
                    return;
                }

                if (CboCertificados.Items.Count == 0 || CboCertificados.SelectedIndex == -1)
                {
                    MessageBox.Show("Para a integração funcionar é necessário ter um certificado válido selecionado. Insira e selecione o certificado e repita o processo.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    timer1.Enabled = true;
                    CboCertificados.Focus();
                    return;
                }


                try
                {
                    byte[] Arquivo;
                    try
                    {
                        Arquivo = Service.WSFile.getFile(oCom);
                        try
                        {
                            MemoryStream ArquivoMS;
                            if (ChkSalvaArquivo.Checked)
                            {
                                ArquivoMS = new MemoryStream(Arquivo);
                                string path = System.AppDomain.CurrentDomain.BaseDirectory + "Temp\\";
                                string pathArquivoRecebido = path + oCom.Codigo.ToString() + "_" + oCom.Versao.ToString() + ".pdf";
                                using (FileStream fs = new FileStream(pathArquivoRecebido, FileMode.OpenOrCreate))
                                {
                                    ArquivoMS.CopyTo(fs);
                                    fs.Flush();
                                }
                                ArquivoMS.Close();
                                string FileNameAssinado;

                                if (AssinarArquivo(pathArquivoRecebido, out FileNameAssinado, true))
                                {
                                    byte[] ArquivoAssinado = INB.Assinador.Helper.FileHelper.ReadFile(FileNameAssinado);
                                    try
                                    {
                                        Service.WSFile.setFile(oCom, ArquivoAssinado);
                                        MessageBox.Show("Arquivo assinado com sucesso.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show("Ocorreu um erro na assinatura e o processo inteiro precisa ser refeito. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                try
                                {
                                    System.IO.File.Delete(FileNameAssinado);
                                    System.IO.File.Delete(pathArquivoRecebido);
                                }
                                catch (Exception ex) { }
                            }
                            else
                            {
                                byte[] ArquivoAssinado;
                                if (AssinarArquivo(Arquivo, out ArquivoAssinado, true))
                                {
                                    try
                                    {
                                        Service.WSFile.setFile(oCom, ArquivoAssinado);
                                        MessageBox.Show("Arquivo assinado com sucesso.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show("Ocorreu um erro na assinatura e o processo inteiro precisa ser refeito. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Um problema ocorreu no envio do arquivo assinado para o servidor. Assinatura não realizada. Repita todo o processo, por favor.", ProductName, MessageBoxButtons.OK);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Ocorreu um erro no Sistema. Erro:" + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Ocorreu um erro ao acessar o WebService de leitura de arquivo do Sistema. Erro:" + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Um erro ocorreu ao tentar buscar o arquivo no Servidor.Erro: " + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            timer1.Enabled = true;
        }
Beispiel #5
0
        private void IniciarServidor(int Porta)
        {
            byte[] bytesFrom      = new byte[10000];
            string dataFromClient = null;

            Byte[] sendBytes      = null;
            string serverResponse = null;
            string MeuIP          = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();

            if (MeuIP == "::1")
            {
                MeuIP = Dns.GetHostAddresses(Dns.GetHostName())[1].ToString();
            }
            TcpListener serverSocket = new TcpListener(IPAddress.Parse(MeuIP), Porta);

            serverSocket.Start();
            int counter = 0;

            while (!ParaServidor)
            {
                counter += 1;
                TcpClient clientSocket = default(TcpClient);
                clientSocket = serverSocket.AcceptTcpClient();
                clientSocket.ReceiveBufferSize = 10000;

                while (!ParaServidor)
                {
                    if (clientSocket.Connected)
                    {
                        if (oServico.NovaMensagemS)
                        {
                            string        ObjetoSerializado = ConverterObjeto.SerializaObjeto(oServico.MensagemS);
                            NetworkStream serverStream      = clientSocket.GetStream();
                            byte[]        outStream         = System.Text.Encoding.ASCII.GetBytes(ObjetoSerializado);
                            serverStream.Write(outStream, 0, outStream.Length);
                            serverStream.Flush();
                            byte[] inStream = new byte[1000];
                            serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
                            string returndata = System.Text.Encoding.ASCII.GetString(inStream);
                            returndata = returndata.Substring(0, returndata.IndexOf("\0"));
                        }
                        if (oServico.NovaMensagemWS)
                        {
                        }
                    }
                    else
                    {
                        break;
                    }
                    //FileStream FS = new FileStream("C:\\Lixo.txt", FileMode.OpenOrCreate);
                    //Byte[] info = ASCIIEncoding.ASCII.GetBytes(str);
                    //FS.Write(info, 0, info.Length);
                    //FS.Close();
                }

                try
                {
                    clientSocket.Close();
                }
                catch (Exception ex) { }
            }
            serverSocket.Stop();
        }