- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用VC编写网络远程控制程序
基于网络的远程控制是网络管理员和黑客都非常关注的网络技术。在美好的网络化社会中远程控制是技术核心,比如将来可以一边坐在办公室里工作,一边通过网络打开家里的电饭锅做饭。简单的说,网络远程控制技术就是可以由一台联网(互联网或局域网)的主机来操纵联网的另一台或多台主机。网络管理员用它来实现网络的远程管理,黑客用它来占用别人的主机资源。网络远程控制实现的基础就是基于网络技术开发的客户端(client)/服务器(server)程序,程序执行后,由客户端来操作服务器完成客户端的请求。一、服务器程序在VC下新建一个基于对话框的工程MiniTrojDlg,要选择支持Winsock,然后在工程中加入自己从Csocket派生的两个类CLisenSocket和CClientSocket,CLisenSocket类用于建立监听的Socket,CClientSocket类用于建立通信的Socket。CLisenSocket类对虚函数OnAccept()进行重载。CClientSocket类对虚函数OnReceive()进行重载。在程序中建立一个用于监听指定端口的Socket,当有客户端请求到达后,再新建一个用于通信的Socket与客户端Socket建立连接,处理客户端请求。如果客户端请求为发送消息,则通过MessageBox函数显示该消息;如果客户端请求为执行命令,则调用WinExec函数执行相应命令;如果客户端请求为截取屏幕,则获取桌面窗口DC并用DIBAPI中函数获取图象并存为DIB对象,通过与客户端建立的连接将此DIB对象发送到客户端显示。相关核心代码如下,详细代码请参见源程序。ClisenSocket.h代码如下:class CMiniTrojDlg;// LisenSocket command targetclass LisenSocket : public CSocket{// Attributespublic:// Operationspublic:LisenSocket(CWnd *pWnd);virtual ~LisenSocket();// Overridespublic:// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(LisenSocket)public:virtual void OnAccept(int nErrorCode);//}}AFX_VIRTUAL// Generated message map functions//{{AFX_MSG(LisenSocket)// NOTE - the ClassWizard will add and remove member functions here.//}}AFX_MSG// Implementationprotected:private:CMiniTrojDlg *m_pWnd;};ClisenSocket.cpp代码如下:LisenSocket::LisenSocket(CWnd *pWnd){m_pWnd=(CMiniTrojDlg *)pWnd;}LisenSocket::~LisenSocket(){}// Do not edit the following lines, which are needed by ClassWizard.#if 0BEGIN_MESSAGE_MAP(LisenSocket, CSocket)//{{AFX_MSG_MAP(LisenSocket)//}}AFX_MSG_MAPEND_MESSAGE_MAP()#endif // 0// LisenSocket member functionsvoid LisenSocket::OnAccept(int nErrorCode) {m_pWnd-ProcessPendingAccept();CSocket::OnAccept(nErrorCode);}CclientSocket.h代码如下:class CMiniTrojDlg;// CClientSocket command targetclass CClientSocket : public CSocket{// Attributespublic:// Operationspublic:CClientSocket(CWnd *pWnd);virtual ~CClientSocket();// Overridespublic:// ClassWizard generated virtual fun
文档评论(0)