1

I'm writing an RFB server. I was wondering if anybody knows of an RFB reference client.

Currently, I run RealVNC and ask it to connect to my RFB server, and it works fine. However, RealVNC is intended to give a good end-user experience. It is not intended to test every possible valid combination of protocol features. So I know that the features which RealVNC uses are implemented correctly, but I have no idea whether the features that RealVNC doesn't use are working at all. But it would be really useful if I could check somehow.

Any suggestions?

(I could, of course, write my own RFB client as well. But that wouldn't really prove anything. If something doesn't work, I can't tell if it's the client or the server that's broken. And if everything does work, that still doesn't mean that both ends implement RFB correctly, just that each has the same bugs as the other.)

PC.
  • 6,870
  • 5
  • 36
  • 71
MathematicalOrchid
  • 61,854
  • 19
  • 123
  • 220

1 Answers1

0

This may help you out a bit. I use to use TCP/IP builder to make various hexcode messages(pointer event, key event, cut text) store them in a text file. Now i Used to connect the tcp/ip builder with my rfb/vnc server.

The RFB server you wrote will now respond to this TCP/IP builder like any RFB Client and you can now verify each and every scenario ( incomplete payload, wrong message number, extra payload, message out of sequence etc)

Make sure you select "Parse Ascii" option if your server doesnt respond with rfb version number info once you connect to your server.

In order to make the the intial message you can record wireshark logs for a successful proper rfb session between your rfb server and real vnc and then use those messages to test your RFB server with TCP/IP builder.

The RFB version info can be send like this "RFB 003.008" , but for the rest of the message you will have to use hex symbol like it is seen network logs (pcap/wireshark)

example : this is how to send Framebuffer request message to your server (non-incremental for 800 x 480)

0x030x000x000x000x000x000x030x200x010xe0

amIT
  • 664
  • 13
  • 27