-1

Im looking to create a sort of remote desktop software, and it is required that i transfer the users screen over the internet to the viewer.

My goal is to create an optimized capture so that i dont have to transfer the whole screen 10 times a second..

The idea i had was take the screenshots on the local computer and then determine only the CHANGED pixels from the last screenshot. So basically if they did something, only what changed on the screen would be sent and reconstructed on the other side, so i can save bandwidth and speed it up for slower internet connections.

My questions:

  1. How can i compare a new screenshot to an old one and determine what has changed.
  2. How would i send the information discovered in step 1 over a standard TCP stream.
  3. How would i reconstruct that data to display the screen updates successfully once on the other side.
caesay
  • 16,932
  • 15
  • 95
  • 160
  • Take a look at VNC (http://www.google.com/search?q=vnc+open+source) or one of its variants. Most have source code available. Optimizing an existing wheel is something you may want to consider before building a new wheel. – xcud Nov 04 '10 at 14:30

1 Answers1

0

VNC is an open source remote desktop software. I recommend you download the source and take a look at how it works. However I am sure its not written in C#.

Here is a link to TightVNC's source code: http://www.tightvnc.com/download.php

FogCreek recently used the VNC source for its CoPilot product. You can download it's source from here as well: https://www.copilot.com/faq/#t28

Hope that helps

Brian Smith
  • 357
  • 1
  • 7