Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Mandare uno ScreenShot da Server a Client
Forum - Java - Mandare uno ScreenShot da Server a Client

Avatar
aked85 (Normal User)
Newbie


Messaggi: 11
Iscritto: 20/10/2008

Segnala al moderatore
Postato alle 11:00
Lunedì, 20/10/2008
Ciao!

come posso fare un applicazione che permetta
al client di vedere il desktop del server in modo fluido, cioe visualizzando ogni evento senza che l'immagine scatti, in un JPanel


penso che il server debba fare uno screenshot del suo desktop ogni tot millisecondi e la invia al client,

il client vede tutto quello che accade sul de desktop del server, ricevendo lo screnshot e visualizzandolo su un JPanel.

Ci sono altre soluzioni?.. come potrei rendere lo sreenshot leggerlo per far si che il client veda lo schermo server come se ci fosse davanti?

grazie

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 11:23
Lunedì, 20/10/2008
E' un tantino più complesso creare un applicativo di desktop remoto...

Consumerebbe troppa banda trasferire ogni tot millisecondi uno screenshot completo dello schermo; l'immagine dello screenshot dovrebbe essere suddivisa in blocchi e confrontata con lo screenshot immediatamente precedente; le parti dello schermo che non sono state influenzate dall'utente non vanno inviate, mentre quelle che sono state cambiate si. Questo permette di alleggerire il carico.

Per il codice e le classi da usare non saprei come fare; dovrei appena documentarmi.


Il mio blog: https://piero.dev
PM Quote
Avatar
aked85 (Normal User)
Newbie


Messaggi: 11
Iscritto: 20/10/2008

Segnala al moderatore
Postato alle 11:57
Lunedì, 20/10/2008
infatti avendo gia creato la comunicazione tra server e client, ora ho provato a implementare la cosa

in parte ci sono riuscito, cioè riesco a visualizzare una parte del desktop del server sul client, però.. mi va in OutOfMemoryError dopo 10 o 15 sec

io lo screenshot l'ho creato con la classe Robot
che me lo crea su una Bufferedimage

dopo mi faccio costruire un array di pixel in formato RGB, grazie al metodo getRGB(..) della BufferedImage

e invio l'array contenuto in un oggetto Screen creato da me, con la writeObject(OutputStream..)

Adesso devo cercare di rendere la cosa meno pesante..

Cmq può darsi che la OutOfMemoryError è causata dal fatto che il server e client li faccio girare sulla stessa macchina... o che la cosa viene implementata tramite i Thread e allora la memoria va in out... infatti l'eccezzione OutOfMemoryError e riferita al thread che riceve l'immagine:

Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space

PM Quote
Avatar
VaLeRiO (Ex-Member)
Pro


Messaggi: 114
Iscritto: 28/06/2008

Segnala al moderatore
Postato alle 15:06
Lunedì, 20/10/2008
Se vuoi aggiungimi ai contatti valerio.s@live.it e facciamo qualche prova in remoto.

Rimango poco convinto riguardo ai 10 ms .. in locale funziona di certo .. ma a distanza non saprei!

PM Quote