计算机远程监控系统 实验报告.doc

上传人:飞****2 文档编号:56707959 上传时间:2022-11-03 格式:DOC 页数:18 大小:237KB
返回 下载 相关 举报
计算机远程监控系统 实验报告.doc_第1页
第1页 / 共18页
计算机远程监控系统 实验报告.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《计算机远程监控系统 实验报告.doc》由会员分享,可在线阅读,更多相关《计算机远程监控系统 实验报告.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、通达学院2014/2015 学年 第 1 学期课程设计 实验报告模 块 名 称 远程计算机监控系统 专 业 通信工程 学 生 班 级 70 学 生 学 号 学 生 姓 名 指 导 教 师 设计题目远程计算机监控系统任务要求远程桌面控制是控制远程计算机的网络通信程序,该程序可让您同时访问不同的远程计算机,无论何时何地,但是 ,因为NAT,PPPoE,DHCP ,和VPN,或一些最新的技术的陆续出现,使该程序功能越受到重视。实验设备及软件计算机(Visual C+ 6.0) 同组人员学号及姓名参考文献参考格式:1 丁展 刘海英windows网络通信编程M人民邮电出版社,2005,20(6): 33

2、362 陈家琪C程序设计教程M北京:新华出版社,2004.11.3 侯俊杰. 深入浅出MFC第二版M 华中科技大学出版社目 录1.1 任务内容:41.2应完成内容4二需求分析42.1用户需求52.2可采用的技术方案52.3 可行性技术研究5三流程图设计63.1事件驱动的程序设计63.2 用户界面对象对象介绍8四程序设计104.1 绑定的线程函数ClientThread的实现104.2 鼠标键盘模拟消息的源代码部分12五设计小结17计算机远程监控系统一设计要求1.1 任务内容:基于Windows的远程控制软件开发毕业设计的主要任务是要求做出从系统角度计的远程控制模式,并制作相应实用软件。采用服务

3、器(Server),客户端(Client)模式,使用Socket编程的基本原理及Windows的消息系统。实现基本的远程控制要求,界面新颖友好。用VC开发!要求: 1)远程控制模式架构,如基于主从模式;2)远程控制功能实现,如开关机,远程监视;3)远程控制安全考虑;4)远程控制实现平台与技巧;5)远程控制软件实现,要求至少能在两台电脑上正常运行;6)界面新颖友好。1.2应完成内容1)远程控制模式架构,如基于主从模式;2)远程控制功能实现,如开关机,远程监视;3)远程控制安全考虑;4)远程控制实现平台与技巧;5)远程控制软件实现,要求至少能在两台电脑上正常运行;6)界面新颖友二需求分析计算机技术

4、支持的业务运营支撑系统是随着市场经营的需要不断得到完善和提高的。系统功能上经历了从最初的资料录入管理到生产派单管理、生产流程管理、统计管理、业务组织管理,一直到决策支持管理的过程.但是因应系统建设的需要,我们必须给出一个清晰的合理的业务定义需求分析就是一个比较合适的方法。2.1用户需求当您在办公室或商务旅行,但有时,你可能需要做一些事必须试用你家里的电脑,例如:阅读您的电子书或阅读您的电子邮件 这是当远程访问软件出场的时候了!它能帮助你访问远程计算机就像访问本地计算机一样,距离不再是问题! 远程桌面控制显示另一台计算机的屏幕(透过网际网络或本地网络)在您自己的屏幕上。该程序允许你利用你的鼠标和

5、键盘来控制其他的计算机远程。这意味着您可以在远程计算机工作,就像你坐在它前面一样。 2.2可采用的技术方案 远程监控系统的实现主要采用了套接字这项技术和虚拟鼠标键盘消息的API,在大多数情况下套接字是底层传输代码的必选技术。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。该程序采用TCP协议,因为流控和差控的存在使得传输更具有稳定性。UDP虽然效率更高,但是有掉包的情况出现,这是本方案所不允许的。 通过SOCKET传递的虚拟消息结构体到对端,被对端主机解释并虚拟,最

6、终达到程序目的。2.3 可行性技术研究技术可行性本次开发所用到的一系列的技术已是累积了几十年的技术,这些技术在这么多年的发展中并没有被淘汰,反而是越来越来热门。当初远程控制这门技术在DOS时代就已经存在,只是受网络的制约,但是此时这门技术还是受网络技术制约着。网络流量的问题是造成所有通信程序的不稳定性的罪魁祸首。但是本程序在局域网中是完全能够实现的,而且本程序也是专门为企业网内部所设计,因为数据信息没被加密,如果想走Internet,则需建立VPN。经济可行性本软件成本低廉,要的只是两个ISP分发的IP地址,而且这也多用于局域网或企业网等内网,就更谈不上成本上的问题。但是如果需要对程序的质量提

7、高可以购买MD5算法,对传输数据进行加密。三流程图设计3.1事件驱动的程序设计传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序直接控制程序事件和过程的顺序。这样的程序设计方法是面向程序而不是面向用户的,交互性差,用户界面不够友好,因为它强迫用户按照某种不可更改的模式进行工作。它的基本模型所示。事件驱动程序设计是一种全新的程序设计方法。它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。它是一种“被动”式程序设计

8、方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。它的框图如图所示:Windows操作系统包括三个内核基本元件:GDI, KERNEL ,USER。其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗

9、口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。框图如下3.2 用户界面对象对象介绍窗口窗口是用户界面中最重要的部分。它是屏幕上与一个应用程序相对应的矩形区域,是用户与产生该窗口的应用程序之间的可视界面。每当用户开始运行一个应用程序时,应用程序就创建并显示一个窗口;当用户操作窗口中的对象时,程序会作出相应反应。用户通过关闭一个窗口来终止一个程序的运行;通过选择相应的应用程序窗口来选择相应的应用程序。一个典型的窗口外观所示。说明这是一个基本的网络拓扑原型,更多的网络拓扑原型可以自己定制。客服端PC监控服务器端PC,这是一个简单的CS模型架构。客服器端PC通过TCP协议与

10、服务器端PC建立连接,这是一个三次握手的过程。建立连接后,两台主机及可以互相通信。逻辑模型 四程序设计4.1 绑定的线程函数ClientThread的实现DWORD WINAPI ClientThread(LPVOID lpParam)HWNDhWnd;SOCKETMySocket;FD_SETSocketSet;structtimevaltimeout;charszMessage2049;DWORDiRecv;structmyStruct*myStructure;DWORDiLength;DWORDiRet;intiUpdates;myStructure = (struct myStruct

11、 *)lpParam;MySocket = myStructure-Socket;hWnd = myStructure-hWnd;timeout.tv_sec = 0;/ 秒timeout.tv_usec = 0;/ 微秒SocketSet.fd_count = 1;SocketSet.fd_array1 = MySocket;while(TRUE)iRet = select(0,&SocketSet,NULL,NULL,&timeout);if (iRet != 0)memset(szMessage,0,sizeof(szMessage)iRecv = recv(MySocket,szMes

12、sage,2048,0);szMessageiRecv = 0;if (strncmp(szMessage,REFRESH,7) = 0)iUpdates = SendRegionDisplay(hServerWnd,MySocket);else if (strncmp(szMessage,WM_,3) = 0)DispatchWMMessage(szMessage);iLength = strlen(szMessage);if (iLength 0)goto CHECK_MSG;else if (strncmp(szMessage,RESOLUTION,10) = 0)SendResolut

13、ion(MySocket);else if (strncmp(szMessage,DISCONNECT,10) = 0)fChange = FALSE;fDIBitmap = FALSE;pGdiNode = GdiStart.pNext;while (pGdiNode)free(pGdiNode-Gdi.pDIBitmap);free(pGdiNode-Gdi.pDIBChangeStart);pGdiNode-Gdi.fDIBitmap = FALSE;pGdiNode-Gdi.fChange = FALSE;pGdiNode = pGdiNode-pNext;break;closesoc

14、ket(MySocket);return 0;4.2 鼠标键盘模拟消息的源代码部分break;if (fWMKeyBdMsg)if (iMessage = 1) keybd_event(BYTE)vk,(BYTE)vk,0,0);else if (iMessage = 2) keybd_event(BYTE)vk,(BYTE)vk,KEYEVENTF_KEYUP,0);iParms+;if (iParms = 5) break;pCommandNode = CommandStart.pNext;if (pCommandNode)UINTkeyFlags;intiMessage;intfWMMo

15、useMsg;doubleiScaleX,iScaleY,iX,iY;DWORDdwX,dwY;intfWMKeyBdMsg;UINTvk;intfDown;intcRepeat;UINTflags;pCommandNode = pCommandNode-pNext;keyFlags = atoi(pCommandNode-Command.szElement);break;if (fWMMouseMsg) iScaleX = 65535.0 / (iWidth - 1);iScaleY = 65535.0 / (iHeight - 1);iX *= iScaleX;iY *= iScaleY;

16、dwX = (DWORD)iX;dwY = (DWORD)iY;mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,dwX,dwY,0,0);else if (iMessage = 3) mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTUP,dwX,dwY,0,0);else if (iMessage = 4) mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,dwX,dwY,0,0);mouse_event(MOUSEEVENTF

17、_ABSOLUTE|MOUSEEVENTF_LEFTUP,dwX,dwY,0,0);mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,dwX,dwY,0,0); else if (strcmp(WMKeyBdMsgiLoop.szWMKeyBdMsg,WM_KU0) = 0)iMessage = 2; pCommandNode = pCommandNode-pNext;vk = atoi(pCommandNode-Command.szElement); pCommandNode = pCommandNode-pNext;fDown =

18、atoi(pCommandNode-Command.szElement); pCommandNode = pCommandNode-pNext;cRepeat = atoi(pCommandNode-Command.szElement);pCommandNode = pCommandNode-pNext;flags = atoi(pCommandNode-Command.szElement);void DispatchWMMessage(char *szString)struct char *szWMMouseMsg; WMMouseMsg = WM_MM,WM_LBD,WM_LBU,WM_L

19、BK,WM_MBD,WM_MBU,WM_MBK,WM_RBD,WM_RBU,WM_RBK;struct char *szWMKeyBdMsg;WMKeyBdMsg = WM_KD,WM_KU;struct char *szMsg;Msg = WM_COMP,WM_GRID,WM_CMOD;intnWMMouseMsg;intnWMKeyBdMsg;intnMsg;structCommandListCommandStart;structCommandList*pCommandNode;structCommandDSCommand;char*pDest;intiLoc,nChar;intiLoop

20、,iParms;charszString22049;nWMMouseMsg = (int)(sizeof(WMMouseMsg)/sizeof(WMMouseMsg0);nWMKeyBdMsg = (int)(sizeof(WMKeyBdMsg)/sizeof(WMKeyBdMsg0);nMsg = (int)(sizeof(Msg)/sizeof(Msg0);CommandStart.pNext = NULL;pCommandNode = &CommandStart;iParms = 0;while (pDest = strchr(szString,;)iLoc = pDest - szSt

21、ring;nChar = iLoc;memset(Command.szElement,0,sizeof(Command.szElement);strncpy(Command.szElement,szString,nChar);pCommandNode = Add_Command(pCommandNode,Command);memset(szString2,0,sizeof(szString2);strcpy(szString2,&szStringiLoc + 1);strcpy(szString,szString2);五设计小结这是一个基本的网络拓扑原型,更多的网络拓扑原型可以自己定制。客服端

22、PC监控服务器端PC,这是一个简单的CS模型架构。客服器端PC通过TCP协议与服务器端PC建立连接,这是一个三次握手的过程。建立连接后,两台主机及可以互相通信。由于经验不足,课程设计设计难免有许多不周全的地方,在这里非常感谢我的组,我们共同解决了很多问题,让我学会了如何透彻的理解网络通信原理和实技巧。以及理论和实践有冲突时,要两相结合来考虑问题,从而寻找良好的解决方案设计成绩评定评分内容具体要求总分评分上机时间上机时间是否达到要求的学时,按照实际情况给与一定的成绩。10分报告审阅结果报告结构严谨,文字通顺,用语符合技术规范,图表清楚,书写格式规范,不与别人雷同。30分验收结果原理原理清楚,能较好地理解课题任务并提出实施方案。20分完成情况独立完成规定设计任务,论证、分析、设计、计算、结构、建模、实验正确合理,有一定的创新。30分操作能熟练操作相关工具软件,并利用工具软件完成设计任务。10分总成绩(五分制)100分指导教师评阅意见

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁