带你迈上专业软件开发第一步:远程屏幕监视软件的设计与实现
2009-05-29 16:52:57 来源:WEB开发网开发环境和功能分析
远程屏幕监视作为我自主编写的远程控制软件的一个模块,我将其独立分割出来发布测试,软件要求能实现分屏同时监视远程主机。大体的开发环境是:
操作系统:Windows XP SP1
开发所用计算机配置:512M内存+P42.4G CPU+800MHZ系统总线
环境:Borland C++ Builder 6.0+SUIStyle控件
至于功能需求分析,我们一点一点看,这或许是专业开发人员和普通自学程序员之间最大的差距,一起来学习、探讨一下吧!
1.为实现数据的网络传输,软件采用C/S(客户端/服务器)数据传输模式。从遵循计算机道德的角度出发,在该设计过程中,不打算编写具有木马特征的独立的服务端,而将软件集客户端(Client)和服务端(Server)于一体。软件基本定位是:远程辅助类工具软件。
Socket:咳……其实你可以花5分钟时间将客户端(Client)和服务端(Server)分离,并加入自启动的功能,如果够狠的话,再加入关联文件的功能,这不是一个截屏木马?
2.服务端(Server)实现:采用C++ Builder的Socket Server控件来实现服务端的数据传输功能。主要功能:监听本地计算机的指定端口,截获本机屏幕信息,拷贝屏幕区域到自定义的位图变量。
Socket:为了达到提高传输效率,服务端根据在连接过程中所获得的转换参数将位图转换成JPGE格式后存入缓存区,在与远程客户端连接的前提下,将缓存区数据流发送至客户端(Client)。
3.客户端(Client)实现:利用Winsock API函数来定义用于本软件网络数据传输的Sockets。功能实现:向远程主机服务端(Server)提出连接申请,并在此过程中将JPGE转换参数发送给服务端(Server)。在获得连接的前提下,不断接受远程服务端(Server)所发送至的包含远程主机屏幕信息的JPGE的数据流,并实时将所接受的图像在本软件的客户区域(Client Region)上重绘,从而实现在本地计算机实时监视远程计算机屏幕的目的。
更多精彩
赞助商链接