The vnc server you're using on B is creating a new desktop rather than sharing the already running desktop. To do the latter, what I use is x11vnc on the server side (share's the currently running desktop) and xtightvncviewer on the client side. I use the "-nowf" feature on the server side with this:
and on the client side, simply
I like xtightvncviewer because it shows the remote cursor (with some lag) rather than having the remote cursor be invisible; it also provides a dot for the local cursor so I don't get lost. This feature may not matter much for your purposes, but it's great when you're using VNC to use a laptop as an extra external display for another computer. If that sounds like something you'd like to do some time, check out the "clip" option on the server side. You do something like this:
x11vnc -nowf -clip 1280x800+0+0
That will share just a 1280x800 piece of the desktop (including virtual space) starting at coordinates 0,0.
Note that the examples I give are just for getting it to work. They're okay for a LAN that you completely trust, but otherwise you'll want to secure vnc via ssh tunneling etc.