Announcing FlashVNC

| 32 Comments | 4 TrackBacks

A revolutionary application for the Flash Platform, I'm proud to announce that I have a VNC client written for Flash Player 8.5.

Like everyone else, I've been busy experimenting with the alpha bits available at Macromedia labs. I have quite a few ActionScript 3 and Flex 2 projects in the works, FlashVNC being just the tip of the iceberg.

The new Player is incredible, and enables a whole new breed of applications to be built that simply weren't possible before. The JIT-compiled speed of ActionScript 3 coupled with new built-in classes that Flash Player 8.5 bring to the table is an incredible combination. Throw in the Flex 2 framework to rapidly create interfaces, and it really is a winning combination.

Now, I must confess, FlashVNC is not 100% complete yet, so I'm not ready to show a "live" demo. However, I've come quite a long way and am far enough along now that the finished product is right around the corner. Below is a screenshot of the working prototype:

Key Features of FlashVNC:

  • flash.net.Socket - binary socket allows connection to a TightVNC server. I've implemented the RFB protocol to establish 2-way communication between my FlashVNC client and a TightVNC server that I'm testing against.
  • DES encryption - it wasn't fun at all, but I've implemented the Data Encryption Standard algorithm for ActionScript 3. Of course this is in a reusable library, so it's not limited to just my FlashVNC project, but part of the RFB protocol is an authentication challenge that requires the use of DES.
  • BitmapData - the remote screen is drawn via low level pixel manipulation. This is a feature available in Flash Player 8, but, well.. see the next point.
  • ActionScript3 - this wouldn't be possible without the speed of ActionScript 3. The amount of calculations being performed to update the screen is a testament to how much better AS3 really is over AS2.
  • Better handling of binary data - in general, Flash Player 8.5 makes working with binary data lot easier. The new int and uint datatypes, along with flash.util.ByteArray have really aided in the creation of FlashVNC.

Of course, it goes without saying that the Flex2 framework enabled me to create an interface for FlashVNC very quickly. I was able to integrate a BitmapData instance with a Flex container, which really helped to make this application possible.

Source code should be available through IFBIN's Flex By Example once the application is finished. When I finish the application, I'll post a working demo then as well (instead of just a measly screenshot).

So yeah.. it's been quiet around here lately, and labs is the reason. Wait until you see what else I have in my bag of tricks... I'm not done yet!

4 TrackBacks

TrackBack URL: http://www.darronschall.com/mt/mt-tb.cgi/72

I'm admittedly late to the blogrush on this story, but mad props are due regardless. Darron Schall has apparently been working on a VNC client for Flash Player 8.5, which is currently blowing my mind. Essentially a remote desktop application,... Read More

Un Client VNC realizzato in Flash from Andrea Veggiani - Blog personale on October 28, 2005 6:13 PM

TITLE: Un Client VNC realizzato in Flash URL: http://www.veggiani.it/index.cfm?mode=viewentry&id=39822E57-BEF0-B2B2-D043F82A345E8DAA IP: 212.110.12.57 BLOG NAME: Andrea Veggiani - Blog personale DATE: 10/28/2005 06:13:52 PM Read More

VNC with flash �ーー������りゃ。�������・・。キャプ�ャ��������������る���������ん���������クリック�ら�?テキスト�入力も��... Read More

FlashVNC - It's VNC, but in Flash from Simon Perry: Schemes, dreams & trivia on November 4, 2005 4:45 AM

I really love when people take on, what could be seen as, slightly mad projects. Darron Schall took it upon... Read More

32 Comments

  • Amazing!

     
  • Woo hoo damn cool is all I can say. There are going to be a whole host of apps like this. The biggest thing I can see at the moment is the speed of development that we are seeing with all these examples popping up. I am presuming tho that you havent built all this in ummm 10 days? (I am unsure how far along you are ofcourse ;o)

     
  • oooh, dangerous making this kind of "I'm almost done" announcement. It reminds me a bit of:

    http://www.gskinner.com/blog/archives/000097.html

    :)

    So am I to understand that working with BitmapData sees a huge performance boost in AS3/8.5? This would really help me on a current F8 project I'm working on.

     
  • No worries on the "almost done" bit. In fact, this will be available in IFBIN before Spark Europe, which is Nov 16-18.

    ActionScript 3 is the key factor in speed. It makes working with BitmapData faster because more code can execute in the same amount of time, thus allowing more pixels to be manipulated on a given frame.

    Also, are you using the double buffering approach I outlined here: http://www.darronschall.com/weblog/archives/000177.cfm ?

     
  • It looks cool. what does it do?

     
  • Can't wait to test it out!!!.....sweet

     
  • I have noticed quite a very programmers implementing protocols. How do you implement a protocols? I am just starting to learn SmallTalk and it would be really cool to implement RPC in SmallTalk.

     
  • That's a wonderful idea. I could make a lot of use of it.

     
  • Ach... I'm never going to live that down am I? And deservedly so, I guess. :)

    Awesome work Darron, can't wait to see it in action.

     
  • Great work Darron - knew you could do it. :)

     
  • Thanks for the compliments everyone. I'm excited to get this one finished... :-)

     
  • Keep up the amazing work Darron. Things are getting abit too exciting these days.

    Will we be getting a ssh client soon to go with that? (kinding a bit, but seems like anything is possible now).

     
  • One word: wowza!

    Great work man.

     
  • Slick, Darron. Very slick. :)

     
  • Amazing work Darron. you rock :)

     
  • Very cool Darron! So you've got the remote desktop control working as well as the remote desktop viewing right? Can't wait to see the finished version. Very exciting times to be a Flasher/Flexer.

     
  • darron,

    where might one download it?
    thanks man.
    i wanna try it out :)

    tw

     
  • Sorry tony, no downloads yet. The prototype I have works, but is a little rough around the edges so I'm not ready to demonstrate it just yet.

    It was too cool to keep to myself any longer though, so I just had to share. :-)

     
  • >>Below is a screenshot of the working prototype<<

    where, i can't see one.

     
  • Really? The screenshot can be found here: http://www.flickr.com/photos/darronschall/56758470/

     
  • what's the purpose of using flash if you can't "right click" ?

     
  • Use Alt + Left Click just as on (the real!) Handheld PC. Or, like the Pocket PC, tap and hold for context menu.

     
  • You're seriously messed up, dude ;)

     
  • Flasvnc could be integrated with flash comunication server?
    Video + Audio + chat + Remote control will be great !!!

     
  • Holy crap, it's about time for me to get back into Flash. Had no idea AS was JITted now.

     
  • this is absolutely great stuff! I cant wait to see the final result. Well done!!

     
  • Update: Alpha version released here...

    http://www.darronschall.com/weblog/archives/000192.cfm

    .. still a work in progress, but you get the idea. ;-)

     
  • Is this Remote Desktop Control or jus Remote Desktop Viewer?

    What is the THINGY that is actually used in Breeze to server this Remote Desktop Control purpose?

    Anyway, it looks to be a really good work! :)

     
  • Is it worth pulling this onboard with the ultravnc project along side their java client?

     
  • i get the white screen as well, i know it has something to do with the vnc running mode or possibly operative system of the host. i tested with an windows xp machine and ultravnc and worked just fine, but then i placed the same exact version of ultravnc on my server windows and used it inside a terminal server and right away all i get is a white screen. Now, mouse events work!, but the screen is white. Maybe this will help to solve this white screen bug.
    Att
    Javier

     
  • Breeze uses a propietary vnc similar flavor of screep capture but it utilizes lots more of your cpu usage because they turn the screen capture to a video capture like mode where flash is able to use to share through. But this is for the presenter side. On the client side all it is doing is showing the shared object, so it is nothing like this project. Note for Darron, if you enable also recording this could be a very special tool since it does exist in some versions of vnc but it is not to it's full potential yet. If you can even record to something even diferent like a flash swf , that'll do it. here is a link: http://www.unixuser.org/~euske/vnc2swf/
    Javier
    Visual Net Design

     
  • Great idea! I can't wait to see the demo. Please let me know when it's ready.

     

Leave a comment

Flex.org - The Directory for Flex

Archives