




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通达学院实验报告实验名称: 远程监控系统 姓名: 学号: 专业: 网络工程 指导老师: 王诚 2010年11月20日实验名称:在线考试系统一、 实验目的1. 通过这次实验,了解远程控制的原理。2. 通过这次实验,掌握C/S模式MFC的通信过程及原理。3. 熟练的操作VC6.0,并利用其作出所需的软件程序。二、 实验内容制作C/S结构模式的远程控制软件,并利用其实现远程桌面显示,关机,以及重启的功能。三、 实验分析及过程1. 实验采用的是TCP/IP协议中的UDP传送协议。而Windows下,通信的实现就是要借助于Sockets(套接字)实现的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。具体的代码实现如下:服务器端:/初始化套接字CServerView:CServerView()m_bServerIsOpen = FALSE;m_hClientSocket = INVALID_SOCKET;CServerView:CServerView()if (m_bServerIsOpen)closesocket(m_pDoc-m_hServerSocket);if (m_hClientSocket != INVALID_SOCKET)closesocket(m_hClientSocket);m_hClientSocket = INVALID_SOCKET; 客户端:/初始化套接字BOOL IniSock(HWND hWnd)WORD wVersionrequested;WSADATA wsaData;wVersionrequested = MAKEWORD(2,0);int err = WSAStartup(wVersionrequested,&wsaData);if (err = -1)MessageBox(0,套接字初始化错误!,远程控制,MB_OK|MB_APPLMODAL);return FALSE;CONNECT = TRUE;/设置计时器SetTimer(hWnd,IDT_TIMER,US_TIME,NULL);return TRUE;/-/连接套接字BOOL ConnectSock()int msgsock;/分配套接字ServerSock = socket(AF_INET,SOCK_STREAM,0);if (ServerSock m_strServerMsg=strBackMsg;pServer-SendMsg();/强制关机ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0);然后在对话框关机按钮中,赋予关机键功能即可。至于,控制远程客户端重启以及注销等功能都可以按相同的原理实现!3. 远程桌面显示比较简单,实现原理就是单独建立一个传输画面进程,代码如下:/传输画面线程UINT ThreadFunForVideo(LPVOID pParam)CServer* pServer=(CServer*)pParam;int nLength=sizeof(pServer-m_sockaddrServer);/建立真正会话连接pServer-m_socketRealConversationForVideo=accept(pServer-m_socketListenForVideo,(sockaddr*)&pServer-m_sockaddrServer,&nLength);if (pServer-m_socketRealConversationForVideo=INVALID_SOCKET)pServer-m_pDlg-MessageBox(建立通信套接字失败!);return 1;while (1)if(pServer-m_bEndThreadVideo=TRUE)AfxEndThread(2);pServer-SendScrBmp();/开始传送画面return 1;至于,屏幕传输内容的细节就是通过一个捕捉桌面的函数实现,代码如下:void CServer:CatchScrBmp()HDC hScrDC,hMemDC;/创建设备表述句柄HBITMAP hBmp;int nWidth,nHeight;hScrDC=:CreateDC(DISPLAY,NULL,NULL,NULL);/创建屏幕设备dchMemDC=:CreateCompatibleDC(hScrDC);/创建与屏幕兼设备容的内存DC/得到屏幕的高和宽nHeight=:GetDeviceCaps(hScrDC,VERTRES);nWidth=:GetDeviceCaps(hScrDC,HORZRES);/创建与屏幕设备兼容位图hBmp=:CreateCompatibleBitmap(hScrDC,nWidth,nHeight);:SelectObject(hMemDC,hBmp);/将位图选入内存设备描述表/复制屏幕设备到内存设备:BitBlt(hMemDC,0,0,nWidth,nHeight,hScrDC,0,0,SRCCOPY);CBitmap bmp;bmp.Attach(hBmp);BITMAP bitmap;bmp.GetBitmap(&bitmap);/得到位图结构BITMAPINFO bitmapInfo;/位图信息结构,包括位图信息头和位图颜色信息/填充位图信息头bitmapInfo.bmiHeader.biSize=sizeof(BITMAPINFO);bitmapInfo.bmiHeader.biWidth=bitmap.bmWidth;bitmapInfo.bmiHeader.biHeight=bitmap.bmHeight;bitmapInfo.bmiHeader.biPlanes=1;bitmapInfo.bmiHeader.biBitCount=bitmap.bmBitsPixel;bitmapInfo.bmiHeader.biCompression=0;bitmapInfo.bmiHeader.biSizeImage=bitmap.bmWidthBytes*bitmap.bmHeight;bitmapInfo.bmiHeader.biXPelsPerMeter=0;bitmapInfo.bmiHeader.biYPelsPerMeter=0;bitmapInfo.bmiHeader.biClrUsed=0;bitmapInfo.bmiHeader.biClrImportant=0;/申请位图数据信息m_pBmpData=new charbitmap.bmWidthBytes*bitmap.bmHeight;/将位图信息填入到位图数据区int n=:GetDIBits(hMemDC,hBmp,0,bitmap.bmHeight,m_pBmpData,&bitmapInfo,DIB_RGB_COLORS);/赋值位图结构m_bmpBit=bitmap;/释放dc:DeleteDC(hScrDC);:DeleteDC(hMemDC);void CServer:SendScrBmp()CatchScrBmp();/捕捉屏幕得到位图结构和位图数据,即得到m_bmpBit和m_bmpData;/发送位图结构信息int nSend=send(m_socketRealConversationForVideo,(char*)&m_bmpBit,sizeof(m_bmpBit),0);/发送位图数据int nBytesOneTime=0;/每次发送数据int nBytesSend=0;/总共发送数据char* pch=m_pBmpData;int size=m_bmpBit.bmWidthBytes*m_bmpBit.bmHeight;doif(m_bEndThreadVideo)break;nBytesOneTime=send(m_socketRealConversationForVideo,pch,size-nBytesSend,0);nBytesSend+=nBytesOneTime;pch+=nBytesOneTime; while(nBytesSendsize);delete m_pBmpData;m_pBmpData=NULL;这样,就将这个实验的核心功能实现了!四、 实验结果1. 程序运行后如下图所示:2. 屏幕显示功能(未能完美实现)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开创未来发言稿
- 企业忠诚度培训大纲
- 时间位移的课件
- 二零二五年度夫妻共同财产清算与分配专项合同
- 2025版废旧金属买卖与环保设备租赁合同样本
- 二零二五年度专业房地产代理服务合同规范
- 2025版杭州商铺租赁合同-包含装修补贴条款
- 二零二五版特色小吃店独家代理购销合作协议范本
- 二零二五年度房地产信托担保合同
- 2025版房屋出租合同免责条款及租后服务
- 五年级下学期数学期末质量分析
- 2025年新版节能减排生态环保知识竞赛考试题库及答案
- 厂区保安安全知识培训课件
- 2025-2030中国5G通信设备制造产业链竞争格局及投资战略规划报告
- 内蒙古自治区赤峰市2024-2025学年高三5月多校联考语文试题(解析版)
- 成人气管切开拔管中国专家共识(2023版)
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 比亚迪速锐智能钥匙系统维修手册
- 三节有机磷杀虫剂课件
- 天津人社局解除劳动合同证明书
- 政府与金融机构战略合作协议【完整版】
评论
0/150
提交评论