Transmitir SCREENS em tempo real com SOCKETS

26/12/2005

4

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.


Responder

Posts

26/12/2005

Eixox

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/


Responder

26/12/2005

Massuda

Talvez [url=http://forum.clubedelphi.net/viewtopic.php?t=71277]este tópico[/url] seja útil para você.


Responder

29/12/2005

Aprendiz_ce

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.


Responder

29/12/2005

Aprendiz_ce

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.


Responder

29/12/2005

Aprendiz_ce

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.


Responder

29/12/2005

Nildo

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 ;-)


Responder

30/12/2005

Aprendiz_ce

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.


Responder

30/12/2005

Nildo

Se do jeito que você gosta é transmitir o screen vc pode tentar transmitir uma screen a cada N milesimos!


Responder

01/01/2006

Aprendiz_ce

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.


Responder

02/01/2006

Nildo

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


Responder

02/01/2006

Nerdex

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:


Responder

02/01/2006

Aprendiz_ce

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.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira