电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> C++/VC>>Visual C++实现对计算机远程监控之一:

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

来源:远方网络 | 2006-1-6 | (有2037人读过)

摘要:本文讲述了利用Socket套接字进行网络编程的一般技术,并通过该技术实现了对计算机的远程监控。

  关键字:Socket套接字、服务器、客户端、远程监控

  引言

  在工程施工中经常遇到中心主控机房和工程现场相分离的情况,这就需要工程设计人员经常往返于中心机房与工程现场之间,有时甚至为了修改几个数据也要相关人员的现场操作才能解决。而且也不能很好的对工程现场进行实时的监测,这就为工程施工与系统的维护带来了极大的不便。现在局域网的技术已相当成熟,在中心机房和工程现场之间构建一个局域网也并不困难。所以我们可以在局域网的物理架构基础之上通过Socket套接字来实现计算机之间的通讯,使维护人员能在中心机房内足不出户就可以实时地监测、控制远在工程现场的计算机的工作状态。本文就对类似程序的实现方法进行简单的介绍。

  Socket网络程序的一般思路

  Windows Sockets 规范定义了一个基于 Microsoft Windows 的网络编程界面,它源于加里弗尼亚大学伯克利分校的伯克利软件发布(BSD)。它既包括熟悉的伯克利 Socket 风格的例程,也包括了一组 Windows 特有的扩展,使程序员可以利用Windows 原有的消息驱动机制进行网络方面的编程。而此类程序中最常用的一种模式就是客户/服务器模式。在这种框架中,客户应用程序向服务器应用程序请求服务。服务器应用程序一般在一个周知地址上侦听(listen)服务请求。就是说,直到一个客户向服务器发出联接请求之前,服务器进程进程是休眠的。收到请求时,服务器进程"醒来(wake up)",完成客户请求的相应的活动。

  套接字共有三种类型:流式套接字,数据报套接字以及原始套接字等。流式套接字定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输;数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠;原始套接字则允许对低层协议如IP或ICMP等协议进行直接访问,主要用于对新的网络协议实现的测试等。无连接服务器一般都是面向事务处理的,一个请求一个应答就完成了客户程序与服务程序之间的相互作用。而面向连接服务器处理的请求往往比较复杂,不是一来一去的请求应答所能解决的,而且往往是并发服务器。

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

点击打开新窗口
C++/VC热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号