内容摘要:采用Socket套接字通信,使用MFC与SDK混合编程技术,完成远程截取目标机屏幕并实现本地机对目标机的控制功能。其中,本地机界面使用MFC,目标机使用SDK,这种实现方案既方便本地机作为客户端控制界面的实现,同时又满足目标机作为服务端无需界面、仅实现Socket通信的要求。
远程控制技术在远程设备(软件)的维护、监控与故障诊断等方面有广泛的应用前景,且大都使用Client/Server模式。该结构包括连接在网络中的多台计算机,那些处理应用、请求另一计算机服务的计算机为客户机(本地机),而响应请求并处理请求的计算机称为服务器(目标机)。
远程控制的原理[1]是:用户连接到网络上,客户程序发送身份验证信息和与远程主机连接的请求,远程主机的服务器端程序验证客户身份,若验证通过,就与客户建立连接,并向用户发送验证通过和已建立连接的信息。此时用户便可以通过客户端程序向远程主机发送要执行的指令,而服务器端程序则执行这些指令,并把键盘、鼠标和屏幕刷新传给客户端程序,客户端程序通过处理把主机屏幕等信息进行显示,使用户就像亲自在远程主机上操作一样。这种方式称为基于远程服务的远程控制(Remote Control over Remote Service)。
综上所述,实现客户端对服务端的远程控制,需要就解决双机Socket网络通信、远程截取屏幕显示以及屏幕数据传送控制等3个问题进行讨论。
1 双机Socket网络通信[2]
初始化服务端Socket:在调用Socket前先要初始化,即加载相应版本的DLL,通过调用WSAStartup函数,将加载成功的Socket库版本的相关信息填在LPWSADATA结构中;
WSADATA lpWSAData;
WSAStartup(MAKEWORD(1,1),&lpWSAData);
创建服务端Socket:完成初始化之后,调用socket函数创建一个套接字,返回套接字句柄,在其后通信中始终用来标识套接字,若调用失败则返回INVALID_SOCKET;
SOCKET sktConnect=socket(AF_INET,SOCK_STREAM,0);
绑定服务端地址:在为某种特定协议创建了套接字后,就用bind函数将套接字绑定到一个本机地址,其类型是sockaddr,用于指明套接字绑定地址,包括IP地址与端口号;
来源:vckbase 作者:钟 文,余新胜 责编:豆豆技术应用
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……