Remote Desktop

Description

Programme client/serveur permettant de visualiser l'écran d'un poste distant.
L'accès au serveur est sécurisé (mot de passe) et l'échange est chiffré.
Il n'y a pas de contrôle clavier/souris pour le moment, mon objectif été
de développer en priorité la partie visualisation écran.

Pour le fonctionement : le serveur récupère les dimensions de l'écran et
l'envoie au client pour qu'il initialise la fenêtre aux bonnes dimensions, il
envoie ensuite au client l'essemble des pixels de l'écran. Puis envoie sans cesse
(uniquement) les pixels qui ont changé par rapport aux captures précèdentes,
cela permet d'éviter d'envoyer à chaque fois l'ensemble des pixels de l'écran et
donc d'avoir de meilleurs performances de rafraîchissement côté client.
Pour un souci de performance j'ai également opté pour le protocole UDP qui est
plus rapide que TCP pour l'envoie des bloques de pixels.

Côté client, le programme récupère au fur et à mesure les bloques de pixels
pour les dessiner dans la fenêtre.

J'ai testé ce programme principalement sur réseau local et les performances
sont plutot satisfaisante (je n'arrive pas a faire mieux), j'ai testé que très
peu de fois sur une connexion "longue distance" et là les performances ne sont
pas top... Si vous avez des idées/conseils pour améliorer les performances de
capture/comparaison/transfert/écriture des pixels pour optimiser le
rafraichissement je suis preneur :)

Le client et le serveur utilisent Qt pour l'interface graphique, les API Win pour
la communication réseau et la capture de pixel côté serveur, OpenSSL pour le
chiffrement RSA et la bibliotheque Pthread.


MAJ 1 (30/09/2013) :

-Ajout d'une fonctionalité remote shell
-Ajout d'une fonctionalité capture d'écran
-Ajout d'une fonctionalité controle de la souris
-Possibilité de réduire la fenetre serveur dans la zone de notification

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.