Windows 命名管道 - 服务器端
以下代码为DLL库中的单元文件。
服务器代码:
UnmpSrv.pas
首先,CreateNamedPipe函数在API中的定义如下:
HANDLE WINAPI CreateNamedPipe(
__inLPCTSTR lpName,
__inDWORD dwOpenMode,
__inDWORD dwPipeMode,
__inDWORD nMaxInstances,
__inDWORD nOutBufferSize,
__inDWORD nInBufferSize,
__inDWORD nDefaultTimeOut,
__in_optLPSECURITY_ATTRIBUTES lpSecurityAttributes
);
参数:
lpName: 管道名称;
dwOpenMode: 打开模式; 有三种模式:双向(server <-> client)、单向1(server <- client)、单向2(server -> client )
dwPipeMode: 管道的数据流模式; 有两种:PIPE_TYPE_BYTE和PIPE_TYPE_MESSAGE。使用字符串多一些的时候建议使用Message模式。
nMaxInstances: 可以连接的客户端数量;范围为1~255。
nOutBufferSize: 缓冲输出大小;
nInBufferSize: 缓冲输入大小;因为使用单向,所以设为0;
nDefaultTimeOut: 超时设定;单位为毫秒。
最后一个参数为可选。设为空。
如果实例值等于0或者无效,则关闭句柄,并返回0;
test命名管道,如果存在,是否存在错误,不存在关闭句柄,并返回0;
返回实例句柄,以供调用。
分享到:
相关推荐
Windows命名管道通信是一种在进程间实现数据通信的技术,尤其适用于在同一台计算机上的多个进程之间交换信息。这种通信机制是基于Microsoft Windows操作系统内核提供的服务,它允许一个进程(服务器)创建一个命名...
Windows命名管道是操作系统提供的一种进程间通信(IPC,Inter-Process Communication)机制,它允许不同进程之间进行数据交换。在Windows系统中,命名管道是一种可靠的、半双工(即数据可以单向流动,但可以在两个...
### Windows命名管道技术的分析与实现 #### 一、引言 Windows命名管道技术作为进程间通信(IPC)的一种机制,被广泛应用于Windows操作系统中,包括Windows NT和Windows 2000等版本。该技术源于贝尔实验室开发的...
命名管道是Windows IPC机制的一种,它允许不同进程之间进行半双工(即数据只能单向流动)的通信。本文将深入探讨命名管道的工作原理、创建与使用方法,以及如何通过进程过程调用(RPC,Remote Procedure Call)...
2. **API调用**:在编程中,创建和使用命名管道通常通过Windows API函数实现,例如`CreateNamedPipe`用于创建管道,`ConnectNamedPipe`用于建立连接,`ReadFile`和`WriteFile`用于读写数据。 3. **安全性**:由于...
命名管道是Windows IPC机制中的一种,它允许不同进程间进行半双工通信,即数据可以在两个方向上传输,但同一时刻只能在一个方向上进行。本示例通过"NamedPipeA.cpp"和"NamedPipeB.cpp"两个源文件,演示了如何创建并...
在Windows操作系统中,命名管道(Named Pipe)是一种进程间通信(IPC, Inter-Process Communication)机制,它允许不同进程之间交换数据。与匿名管道不同,命名管道可以通过其名称被其他进程找到并使用,使得跨进程...
命名管道是Windows系统提供的一种进程通信机制,通过使用命名管道,两个进程可以进行通信。在本实验中,我们将使用命名管道实现两个进程之间的通信,并介绍相关的API和操作步骤。 一、实验目的: 1. 了解 Windows ...
"命名管道"是Windows系统提供的一个半双工(Half-Duplex)通信机制,它允许两个进程通过一个管道进行单向通信。命名管道的一个显著特点是其“命名”,这意味着任何知道管道名字的进程都可以连接到这个管道,从而实现...
1. 定义管道名称:这是一个字符串,用于标识管道,必须遵循Windows命名规则,例如"\\.\pipe\mypipe"。 2. 使用`创建管道`命令创建管道对象,该命令需要指定管道名称、读写权限(可读、可写或两者皆有)、缓冲区大小...
命名管道是Windows操作系统中一种进程间通信(IPC)机制,它允许不同的进程之间进行数据交换。在本案例中,"命名管道双管道跨进程通信多线程封装"着重讲解了如何利用命名管道来实现跨进程的数据传输,并且考虑到了多...
管道 包 npipe 提供了一个围绕 Windows 命名管道的纯 Go 包装器。 Windows 命名管道文档: : 请注意,代码位于分支),但应导入为 gopkg.in/natefinch/npipe.v2(包名称仍为 npipe)。 npipe 提供了一个基于 stdlib ...
命名管道是Windows操作系统提供的一种进程间通信(IPC)机制,允许不同进程之间交换数据。在VC++编程环境中,我们可以利用Microsoft的C运行时库(CRT)和Windows API来创建和使用命名管道。在这个"VC命名管道程序及...
2. **连接命名管道**:另一端的进程使用ConnectNamedPipe函数尝试连接到已创建的命名管道。如果创建管道时设置了服务器端等待连接,那么这个过程会阻塞,直到有客户端连接。 3. **数据传输**:连接成功后,双方可以...
在Windows操作系统中,命名管道尤其常见,C++编程语言提供了丰富的API来实现这一功能。本教程将详细介绍C++如何利用命名管道进行通信,并提供基于Visual Studio 2013的简单案例。 ### 命名管道基础 命名管道是...
命名管道是Windows操作系统中的一种进程间通信(IPC)机制,它允许不同的进程之间进行数据交换。在本实例中,我们将深入探讨命名管道的工作原理、如何创建和使用命名管道,以及在实际开发中的应用。 首先,我们需要...
命名管道(Named Pipes)作为一种进程间通信(Inter-Process Communication, IPC)机制,被广泛应用于Windows NT、Windows 2000、Windows 95以及Windows 98等操作系统上。这种通信方式支持在同一台计算机上的不同...
2. `bool open()`: 打开已存在的命名管道,或者创建一个新的管道。如果管道不存在,创建失败,返回false。 3. `bool close()`: 关闭当前连接的命名管道。 4. `bool write(const void* data, size_t length)`: 向管道...
2. **创建命名管道**:在VC++中,可以使用`CreateNamedPipe`函数创建一个命名管道。该函数需要指定管道的名称、管道模式(读写模式)、最大实例数、缓冲区大小等参数。 3. **连接命名管道**:另一进程通过`...