【VS开发】 Windows平台下管道的使用
阅读原文时间:2023年07月08日阅读:2

转载地址:

管道分类:

1. 匿名管道:

只能用于相关进程(如父子进程,兄弟进程),并在他们之间建立内存区域,进程终止后,匿名管道也就消失了。

通常用于:重定向子进程的标准输入输出,以便和父进程交换数据。要双向交换数据必须创建两个匿名管道。不能用于网络环境,也不能用于非关联进程。

2. 命名管道:

是在管道服务器和一台或多台管理客户机之间进行单向或双向通信的一种命名管道。一个管道共享一个管道名,但是每个实例拥有独立的缓存和句柄,并为客户-------服务通信提供一个分离的管道。

命名格式采用UNC格式:\\server\pipe\[path]name

3. 命名管道的实现:

服务端:

1.使用API函数WaitNamedPipe等待一个命名管道实例供自已使用。

2.使用API函数CreateFile建立与命名管道的连接。

3.使用API函数WriteFile和ReadFile分别向服务器发送数据或从中接收数据。

4.使用API函数CloseHandle关闭打开的命名管道会话。

客户端:

1.使用API函数WaitNamedPipe等待一个命名管道实例供自已使用。

2.使用API函数CreateFile建立与命名管道的连接。

3.使用API函数WriteFile和ReadFile分别向服务器发送数据或从中接收数据。

4.使用API函数CloseHandle关闭打开的命名管道会话。

一、匿名管道

点击(此处)折叠或打开

二、命名管道

服务端:

点击(此处)折叠或打开

客户端:

点击(此处)折叠或打开