Microsoft Visual Studio 2008 是面向 Windows Vista 、 Office 2007 、 Web 2. 0
的开发工具 , 其新增的自动提示和重构功能可以使得软件开发更加智能,对 MFC 的支
持也便于轻松实现针对 Windows 传统窗口程序的编程 [5]
。本文所涉及的所有代码、程
序都在 Visual Studio 2008 环境下编译运行通过。1.4.3 相关技术手段
本课题拟采用基于命名管道的技术设计服务程序,管道 ( Pipe) 是一种进程间的
通信机制 ,Windows 、 Linux 和 UNIX 都使用这种机制。在 Windows NT 、 Windows 2000
系统中均存在两种方式的管道 , 即匿名管道 (Anonymous Pipes) 和命名管道 (Named
Pipes) [6-8]
。
匿名管道只能用于相关进程 ( 如父子进程、兄弟进程 ) 之间的通信 , 并且它建立
在内存区域 。 进程终止后 , 匿名管道也就消失了 。 匿名管道使得关联的进程可以互相
传送信息 , 通常匿名管道用于重定向子进程的标准输入输出 , 以便于和父进程交换
数据 。 要双向交换数据必须创建两个匿名管道 。 匿名管道是同一台计算机的关联进程
的子进程重定向标准输入输出的一种有效方法 , 但不能用于网络环境 , 也不能用于
非关联的进程间。
命名管道是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一
种命名的管道 。 一个命名管道的所有实例共享同一个管道名 , 但是每一个实例均拥有
独立的缓存与句柄 , 并且为客户 —— 服务通信提供一个分离的管道 。 命名管道用于在
非关联进程和不同计算机上的进程间传送数据 。 通常命名管道服务器进程创建使用一
个众所周知的名字或客户机知道名字的命名管道 , 知道管道名字的命名管道客户机
进程在管道另一端打开管道 , 并服从服务器进程指定的访问限制。在服务器和客户机
都连接到管道后 , 就可以在管道上使用读写操作来交换数据 。 命名管道在进程间提供
一个传送数据的简单的编程接口 , 不管进程是否在同一台计算机上。
其他的进程间通信技术主要有:系统 IPC( 包括消息队列 , 信号量 , 共享存储 ),
SOCKET 。其中 SOCKET 更多地用于不同网络间的进程通信。与系统 IPC 相比,管道技
术的突出优点在于所有的 UNIX 实现都能够支持,并且 在最后一个访问管道的进程终
止后 , 管道就被完全删除 。 命名管道还充分利用了 WindowsNT 及 Windows 2000 内建的
安全特性,通信的安全性相对较好。其优越性和灵活性具体表现在:
1 .既可用于本地,又可用于网络。
2 .可以通过它的名称而被引用。
3 .支持多客户机连接。
4 .支持双向通信。
5 .支持异步重叠 I/O 操作 [9]。 Windows环境下一个Service控制Shell的设计与实现(4):http://www.751com.cn/jisuanji/lunwen_8766.html