I've made my own Socket-based version of Client-Server Remote Desktop application in Java. It works OK with performance comparable to Win7 native RD client. But, there is a problem. My Java RD client can't receive desktop screenshots from server until I connect to the remote machine using Win7 native RD client. Only in that case my Java RD server starts to send desktop screenshots. If I close native Win7 RD client, my server continues to run (accept new connections etc.), but sends empty (black) screenshots to clients.