Explain the VNC RFB protocol in detail so as to enable replication with VB6 and API calls.

I am looking to create an opensource VB example of VNC, and I need to understand (in detail) how the remote frame buffering protocol of VNC is accomplished enough to replicate it using VB6 and API calls.

Can you help?
JimHubbardAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

phyderousCommented:
VNC is an open source ....

just d/l the code everything is in there
JimHubbardAuthor Commented:
If I knew C/C++ enough to understand the code, I wouldn't be recoding it in VB.
phyderousCommented:
I am not sure pure vb is strong enough to handle this

you might want to try writting it in DirectX with vb and maybe using .net with directx 9 which will give you better support.

there are to main ideas in the field of remote control the one

like vnc

build on capturing the current frame and from this point only pass the delta

somthing like mpeg

think of the starting position as a key from now on
your server send only the delta between the current frame and the key.

you can use directx to compare and send only the dela.

and so on.

if the change is above some precentage then you send the all screen again.

you may also want to send some circle arround the current position of the mouse all the time.

the second option

is much more diffecult to program it. and will work only in windows.

you can use the windows api to query each window and map the sceen by rebuilt the programs in the client.

in this option you will not recive backgroud images and so on, but it will work much faster

for example insted of sending the bit map of a window you can send for example "createwindow top:100;left:100;width=500;height=500" then create toolbar create menu and so on ...

as I said it is very comlicate(this is how microsoft terminal server is working) but will give you much better results ...

good luck,

Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

JimHubbardAuthor Commented:
I know the different theories on how to do remote controlling.  I am not looking for theories - they are of no use to me.

And, although you can query each window with Windows API calls, a MUCH quicker and easier way to accomplish this is to hook the system and intercept each WM_PAINT message to see what is being redrawn in every window, without the need to query each one individually.

I need the remote frame buffer protocol explained in detail, as I asked in the original question.  

I think, since VNC is out, that nobody has ever really questioned *how* VNC works.  Therefore, it will not improve as it should.

Does anybody really understand VNC's remote frame buffer protocol?

I'd hate like hell to have to learn an archaic language like C just to figure this thing out.

Jim
phyderousCommented:
the rfb protocol is described in

http://www.realvnc.com/docs/rfbproto.pdf

it is quite well documented

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JimHubbardAuthor Commented:
Most excellent phyderous!  I looked my little ass off and could not find this documentation.

Thanks so much for your help!

Jim
phyderousCommented:
cheers
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.