本着技术研究的初衷,闲来没事,就琢磨着弄一个远程桌面程序,这玩意儿已经没什么技术难点了,即使有,在网络这么发达的今天,也会很快解决。
要实现远程桌面,首先要有网络连接,这个没什么好说的,我选择的是TCP:一个客户端接收数据回放,一个服务端保存屏幕图像发送出去,程序的思路就是这样的了。
具体的实现:在服务端,屏幕截图后保存在内存中,经ZLib压缩后(压缩比很可观),进行封包,包头包括压缩数据的大小、屏幕的大小和色深,后面接具体的压缩数据,然后发送出去。客户端接收到数据后解析包头,根据色深、屏幕大小准备内存DC,然后绘制出来。