Opa,
Eu faria utilizando sockets mesmo, pois além de ser possível implementar em rede, independe de plataforma.
Testei aqui em casa com dois pcs, o meu que é linux e o outro que é windows e consegui transferir arquivos inteiros, de até 20MB.
Dá pra explorar muito a comunicação via socket, pois assim como foi dito à exemplo dos arquivos ini, você pode enviar mensagens padronizadas, praticamente inventando um protocolo próprio de comunicação, com checksum e etc.
Eu transferi um arquivo rar simplesmente lendo ele com memoread, e enviando para a outra máquina um hash com informações como o nome dele, o md5, a data, o tipo mime, e claro o conteúdo propriamente. Para incrementar criptografei tudo com chave assimétrica RSA (com o openSSL), garantindo integralmente a segurança e privacidade dos dados.
Além disso realizei testes onde foi possível executar diretamente comandos na máquina remota, inclusive puxando arquivos, bastando para isso preparar a máquina receptora para executar os comandos recebidos, com CMD, START, RUN, ou OpenProcesss em multi-thread. Este processo é completamente transparente e pode ser utilizado por "softwares mal intencionados" para criar um backdoor que só mesmo um bom firewall pode interceptar. Pode ser usado pelo lado bom da força também, baixando atualizações em background por exemplo.
No caso do WIndows, o Avast antivírus nem percebe. Claro que no Linux não é tão simples porque normalmente o iptables rejeita tudo.
Abraços.
Ajuda com comunicação entre aplicações
Moderador: Moderadores
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Re: Ajuda com comunicação entre aplicações
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Re: Ajuda com comunicação entre aplicações
Cada ferramenta tem sua utilidade. Sockets é ótimo para muitas coisas e não tão bom para outras. Para comunicação entre processos da mesma aplicação o sistema de mensagens do Windows traz mais vantagens. Até porque, é comum dedicar tratamento especial a várias mensagens do próprio Windows. E se essa mensagens já serão manipuladas, fica simples incluir mais algumas, customizadas, para exercer algum tipo de controle sobre os diversos formulários da aplicação.
Comunicação inter-processos (inclusive entre SOs distintos) fica muito fácil com o uso de sockets e abre um grande leque de possibilidades. Esta ferramenta é apropriada para este caso.
Comunicação inter-processos (inclusive entre SOs distintos) fica muito fácil com o uso de sockets e abre um grande leque de possibilidades. Esta ferramenta é apropriada para este caso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Re: Ajuda com comunicação entre aplicações
Opa,
Mas no caso ele está tratando de duas aplicações diferentes, e tendo isto em vista, imaginei que um dia a necessidade dele poderia ser de rodar o emissor das mensagens num pc central e emiti-las para varios pcs em uma rede.
Este tipo de mensagem broadcast que você está citando, no Linux é feito por um componente chamado DBus.
Embora o autor do tópico esteja usando Delphi e aparentemente jamais vai usar Linux, vale a pena explorar um pouco as opções afim de esclarecimento e bate papo. No Linux o sujeito pode ou não habilitar o DBus, assim como qualquer outro componente, inviabilizando mensagens deste tipo, a menos que o autor do programa se preste a ir no cliente e ficar configurando. Sockets não da pra desabilitar, pois é tratado como um tipo de arquivo especial nativo, mais ou menos como um pipe.
Abraços.
Mas no caso ele está tratando de duas aplicações diferentes, e tendo isto em vista, imaginei que um dia a necessidade dele poderia ser de rodar o emissor das mensagens num pc central e emiti-las para varios pcs em uma rede.
Este tipo de mensagem broadcast que você está citando, no Linux é feito por um componente chamado DBus.
Embora o autor do tópico esteja usando Delphi e aparentemente jamais vai usar Linux, vale a pena explorar um pouco as opções afim de esclarecimento e bate papo. No Linux o sujeito pode ou não habilitar o DBus, assim como qualquer outro componente, inviabilizando mensagens deste tipo, a menos que o autor do programa se preste a ir no cliente e ficar configurando. Sockets não da pra desabilitar, pois é tratado como um tipo de arquivo especial nativo, mais ou menos como um pipe.
Abraços.
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Re: Ajuda com comunicação entre aplicações
Não, você não entendeu. Eu apenas quis dizer que, na minha opinião, usar o sistema de mensagens do Windows seria mais apropriado para comunicação entre processos da mesma aplicação. Também poderia ser utilizado em aplicações diferentes rodando no Windows, claro. Até foi sugerido isso. Mas o OP optou por usar sockets e parece que não apenas funcionou muito bem para resolver o problema, como também tornou mais fácil realizar a tarefa. Depois que ele anunciou o resultado, nós só continuamos a discutir o assunto.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Re: Ajuda com comunicação entre aplicações
Por isso mesmo eu disse que era apenas a título de bate-papo, mas quem sabe daqui um dia ou um ano, alguém faz uma busca no google e cai aqui encontrando o que precisava, ou pelo menos informações interessantes...Maligno escreveu:Depois que ele anunciou o resultado, nós só continuamos a discutir o assunto.
Abraços!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
