Transmitir SCREENS em tempo real com SOCKETS
Criei um aplicativo que monitora estações de um rede local, Utilizando SOCKETS. O Aplicativo tira SCREENS das estações e exibe para quem está monitorando. Como faço para que seja transmitido para o servidor (monitoramento) SCREENS em tempo real? Como os programas VNC e PCANYWHERE.
Obrigado e aguardo qualquer ajuda.
Obrigado e aguardo qualquer ajuda.
Aprendiz_ce
Curtidas 0
Respostas
Eixox
26/12/2005
Estimando amigo,
Você deve pensar no modelo reverso. No caso, se você estiver usando os componentes Indy TCP Server e Cliente, o servidor é quem bate a fotografia e o Cliente é quem requisita.
Exemplo: Você pode encontrar um exemplo no próprio site da empresa fabricante do componente. lá tem um modelo que você pode ver o código e colocá-lo no seu sistema.
http://www.indyproject.org/
Você deve pensar no modelo reverso. No caso, se você estiver usando os componentes Indy TCP Server e Cliente, o servidor é quem bate a fotografia e o Cliente é quem requisita.
Exemplo: Você pode encontrar um exemplo no próprio site da empresa fabricante do componente. lá tem um modelo que você pode ver o código e colocá-lo no seu sistema.
http://www.indyproject.org/
GOSTEI 0
Massuda
26/12/2005
Talvez [url=http://forum.clubedelphi.net/viewtopic.php?t=71277]este tópico[/url] seja útil para você.
GOSTEI 0
Aprendiz_ce
26/12/2005
Estimando amigo,
Você deve pensar no modelo reverso. No caso, se você estiver usando os componentes Indy TCP Server e Cliente, o servidor é quem bate a fotografia e o Cliente é quem requisita.
Exemplo: Você pode encontrar um exemplo no próprio site da empresa fabricante do componente. lá tem um modelo que você pode ver o código e colocá-lo no seu sistema.
http://www.indyproject.org/
eixox,
Estou realmente pensando e fazendo o reverso, as estações são os servidores e monitor é o cliente. Só que para feito ´nominal´ acho que fica melhor como mencionei acima. OK?
E quanto a sua dica... vou dar uma olhada.
Obrigado e aguardo qualquer novidade sobre o assunto.
GOSTEI 0
Aprendiz_ce
26/12/2005
Talvez [url=http://forum.clubedelphi.net/viewtopic.php?t=71277]este tópico[/url] seja útil para você.
Massuda,
Estou utilizando a mesma técnica do tópico que você recomendou. Gravo um arquivo da tela da estação na própria estação e depois envio o mesmo arquivo para o monitor (cliente) e exibo na tela. Mas eu queria algo em tempo real que exibisse todos os movimentos de trabalho da tela da estação, e aí? Se eu fizer um relay automático que ficasse enviando este arquivo de tela pela rede, não seria errado? Como poderia fazer isso só utilizando memória?
Obrigado e aguardo qualquer sugestão.
Ps. Vou teria um exemplo básico (como faço o HOST e um CLIENT se conectarem) de com se utiliza os componentes INDY, pois estou utilizando os componentes SERVERSOCKET e CLIENTSOCKET ainda.
GOSTEI 0
Aprendiz_ce
26/12/2005
eixox,
Dei uma olhada nos demosm, mas não ví nada refente ao que eu quero. Será que você saberia me dizer qual é o exemplo correto?
Obrigado e aguardo retorno.
Dei uma olhada nos demosm, mas não ví nada refente ao que eu quero. Será que você saberia me dizer qual é o exemplo correto?
Obrigado e aguardo retorno.
GOSTEI 0
Nildo
26/12/2005
Dessa meneira ficaria um processo muito lento. Já que se você bater uma foto do screen, essa foto contém mais de 2 megas (em BITMAP), e transmitir isso a cada intervalo menor que 1 segundo.. Seria suicidio. A mesma coisa acontece se você compactar, vai dar uns 100kb+/- pra cada screenshot que vc tirar. E transmitir isso constantemente é realmente um suicídio também.
Você teria que fazer algo mais inteligente, na verdade um driver pra hookar (interceptar) qualquer alteração na tela, e enviar essas informações ao Server (ou Client, como preferir) e o mesmo fazer essas alterações na tela do Viewner. Mas como isso é muito complexo, você pode fazer um algoritmo para identificar alterações na tela, verificando uma screen a cada N milésimos, e transmitir apenas as partes alteradas da tela.
Enfim, vai muito da criatividade, mas tudo é possivel ;-)
Você teria que fazer algo mais inteligente, na verdade um driver pra hookar (interceptar) qualquer alteração na tela, e enviar essas informações ao Server (ou Client, como preferir) e o mesmo fazer essas alterações na tela do Viewner. Mas como isso é muito complexo, você pode fazer um algoritmo para identificar alterações na tela, verificando uma screen a cada N milésimos, e transmitir apenas as partes alteradas da tela.
Enfim, vai muito da criatividade, mas tudo é possivel ;-)
GOSTEI 0
Aprendiz_ce
26/12/2005
Dessa meneira ficaria um processo muito lento. Já que se você bater uma foto do screen, essa foto contém mais de 2 megas (em BITMAP), e transmitir isso a cada intervalo menor que 1 segundo.. Seria suicidio. A mesma coisa acontece se você compactar, vai dar uns 100kb+/- pra cada screenshot que vc tirar. E transmitir isso constantemente é realmente um suicídio também.
Você teria que fazer algo mais inteligente, na verdade um driver pra hookar (interceptar) qualquer alteração na tela, e enviar essas informações ao Server (ou Client, como preferir) e o mesmo fazer essas alterações na tela do Viewner. Mas como isso é muito complexo, você pode fazer um algoritmo para identificar alterações na tela, verificando uma screen a cada N milésimos, e transmitir apenas as partes alteradas da tela.
Enfim, vai muito da criatividade, mas tudo é possivel ;-)
nildo,
então não tem como fazer do jeito que eu gostaria? Mesmo seguindo o seu conselho, a coisa não ficaria como eu imagino.
Obrigado e qualquer novidade me dê um toque.
GOSTEI 0
Nildo
26/12/2005
Se do jeito que você gosta é transmitir o screen vc pode tentar transmitir uma screen a cada N milesimos!
GOSTEI 0
Aprendiz_ce
26/12/2005
Se do jeito que você gosta é transmitir o screen vc pode tentar transmitir uma screen a cada N milesimos!
OK! Mas como é que o VNC e o PCANYWHERE fazem isso, você tem idéia?
Obrigado mais uma vez.
GOSTEI 0
Nildo
26/12/2005
OK! Mas como é que o VNC e o PCANYWHERE fazem isso, você tem idéia?
Eles fazem da maneira que eu expliquei logo acima! usando drivers, algoritmos de identificação de mudança na tela, etc
GOSTEI 0
Nerdex
26/12/2005
Dei uma pesquisada na NET e vi que tem muita coisa já pronta como essa, visto que não é necessário uma ´reivenção da roda´:
[url]http://delphivnc.sourceforge.net/[/url]
Achei interessante o .PDF que nos proporciona uma assimilação maior do protocolo RFB ...: :wink:
[url]http://delphivnc.sourceforge.net/[/url]
Achei interessante o .PDF que nos proporciona uma assimilação maior do protocolo RFB ...: :wink:
GOSTEI 0
Aprendiz_ce
26/12/2005
Dei uma pesquisada na NET e vi que tem muita coisa já pronta como essa, visto que não é necessário uma ´reivenção da roda´:
[url]http://delphivnc.sourceforge.net/[/url]
Achei interessante o .PDF que nos proporciona uma assimilação maior do protocolo RFB ...: :wink:
NerdeX,
Dei uma olhada, mas confeço que estou ´voando´. Vou dar um lida com mais calma e vou ver no que é que dá...
Obrigado e qualquer outra dica sobre o assunto será bem vinda.
GOSTEI 0