欢迎来到天天文库
浏览记录
ID:21870715
大小:57.50 KB
页数:6页
时间:2018-10-25
《基于socket技术的计算机远程控制实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Socket技术的计算机远程控制实现:随着计算机互联X的不断发展,计算机远程控制技术在远程办公,远程教育,远程维护等领域被广泛使用。针对计算机远程控制程序的需求,该文实现了一个基于TCP/IP协议的计算机远程控制程序,该程序使用SOCKETX络编程技术及MFC界面设计技术,通过对端口的监听实现计算机远程关机、文件上传及下载以及文件管理等功能。 关键词:计算机远程控制;服务器;客户端;Socket :TP311:A:1009-3044(2011)19-4565-03 ImplementationofputerRem
2、oteControlBasedonSocketTechnology ZHULiang,YINGJie (UniversityofShanghaiforScienceTechnology,Shanghai200093,China) Abstract:FCsoftoteshutdoeotherfunctionsoffilemanagement. Keyotecontrol;server;client 随着X络以及计算机软硬件的不断发展,计算机远程管理及技术支持的需求不断增加,计算机远程操作及控制技术越来越引起人们的关
3、注。如今,远程控制软件已经成为了软件技术支持消费中第三个增长最快的领域。目前主流的计算机远程控制软件有PCAnyoteAnye()函数获取当前系统时间并更新到相关变量中。退出服务按钮通过对当前服务器端程序启动状态的判断决定是否先停止套接字服务然后再退出程序。 3)系统日志子模块:用于对服务器端所进行的所有操作进行显示。服务日志列表中显示的系统日志记录是动态更新的,在服务器端程序产生命令操作的时候会将相关行为加入该ListBox中。 4)消息记录与显示子模块:主要用于客户端和服务器端用户文字信息的交流。聊天记录列表框的更
4、新原理与系统记录列表框更新原理类似,当接受到OnReceive函数发来的消息时就会将新的消息添加到聊天记录中。发送消息按钮调用监听套接字的数据包发送函数发送包含文字信息的自定义数据包。在这个模块中,接收信息是自动的,但是由于多客户端的存在,所以发送消息的对象就要通过在客户端列表中先进行选择然后将消息发送给选择的客户端。 5)消息调用模块:本模块的功能是根据监听套接字接受到的自定义数据包的类型进行相关操作函数的调用,并根据操作函数的返回值判断行为结果并向客户端发送反馈信息。 6)系统功能模块包括:关机、文件操作和目录操作
5、。通过调用相关的API函数进行操作。也就是服务器端执行命令的具体体现。 7)文件收发模块:采用多线程模式,其传输的原理如图2所示。图中自上而下为程序的进行方向,黑色箭头表示客户端和服务器端之间PACKAGE的传输。其中把客户端和服务器端都分为3个进程:主进程,文件传输进程和消息进程。创建进程使用函数AfxBeginThread。当文件传输进程结束操作后自动结束该进程。 2客户端设计 计算机远程控制客户端程序界面如图3所示。客户端程序设计主要包括以下几个模块: 1)客户端列表子模块:在这个模块中,可以自动显示新连接到
6、服务器的客户端IP,可以通过删除按钮删除客户端并断开连接,也可以修改所选择客户端的权限。客户端列表显示窗口中客户端IP是动态更新的,它与自定义客户端链表CLIENTLIST相对应。其添加操作通过服务器套接字的OnAccept函数自动添加。删除客户端按钮用于删除客户端链表CLIENTLIST中对应的客户端结点。更改权限按钮会在CLIENTLIST链表中找到对应的client结点,并修改其中的权限变量。其实现代码如下。 voidCServerDlg::OnButtonChangeRight() { OnLButtonCh
7、angeListClient();//完成ListBox中选择项目的更新(GetCurSel) CLIENTLIST*psSearch,*psSearchbefore; psSearch=psHead;//psHead为链表表头结点 for(intnCounti=0,psSearchbefore=psHead,psSearch=psHead->next;nCounti!=nClientselect;nCounti++,psSearch=psSearch->next,psSearchbefore=psSea
8、rchbefore->next);CStringSelectclient; cClientlist.GetText(nClientselect,Selectclient);//cClientlist为ListBox的control变量 cClientlist.DeleteString(nCli
此文档下载收益归作者所有