WEB开发网
开发学院软件开发VC Visual C++实现对计算机远程监控 阅读

Visual C++实现对计算机远程监控

 2008-11-14 19:33:26 来源:WEB开发网   
核心提示: 本文所采用的就是面向连接的套接字,其工作过程如下:服务器首先启动,Visual C++实现对计算机远程监控(2),通过调用socket()建立一个套接字,然后调用bind()将该套接字和本地网络地址联系在一起,一般有三种方法:在Autoexec.bat里添加代码;在Win.ini的Run项

本文所采用的就是面向连接的套接字,其工作过程如下:服务器首先启动,通过调用socket()建立一个套接字,然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收连接。客户在建立套接字后就可调用connect()和服务器建立连接。连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据。最后,待数据传送结束后,双方调用close()关闭套接字。其主要的流程时序可以通过图1来表示:

Visual C++实现对计算机远程监控

服务器端程序设计实现

由于我们的目的是通过在位于中心机房的客户端来监控远程的服务器端,而根据前面介绍的面向连接套接字应用程序的工作方式,要求服务器必须先于客户端而运行。所以根据实际需要,我们应当让服务器程序能自启动。一般有三种方法:在Autoexec.bat里添加代码;在Win.ini的Run项里添加启动路径;在注册表里添加键值。本文在此采用后一种方法,通过向注册表的SoftwareMicrosoftWindowsCurrentVersionRun下添加键值的方式来实现,另外也可以在RunServer下添加键值实现之:

……
//设定待添加的注册表的路径
LPCTSTR Rgspath="SoftwareMicrosoftWindowsCurrentVersionRun" ;
……
//获取系统路径
GetSystemDirectory(SysPath,size);
GetModuleFileName(NULL,CurrentPath,size);
……
//把服务程序从当前位置拷贝到系统目录中
FileCurrentName = CurrentPath;
FileNewName = lstrcat(SysPath,"System_Server.exe");
ret = CopyFile(FileCurrentName,FileNewName,TRUE);
……
//打开键值
ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,Rgspath,0,KEY_WRITE, &hKEY);
if(ret!=ERROR_SUCCESS)
{
 RegCloseKey(hKEY);
 return FALSE;
}
//设置键值
ret=RegSetValueEx(hKEY,"System_Server",NULL,type,
(const unsigned char*)FileNewName,size);
if(ret!=ERROR_SUCCESS)
{
 RegCloseKey(hKEY);
 return FALSE;
}
//关闭键值
RegCloseKey(hKEY);

上一页  1 2 3 4 5 6 7  下一页

Tags:Visual 实现 计算机

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接