文章
· 十一月 7 阅读大约需 3 分钟

第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令

第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令

用于进程间通信的 CLOSE 命令

如果使用带Q (/QUEUE) 参数代码的OPEN创建子进程,则该子进程可能会在设备上的CLOSE操作中继续存在。排队的进程间通信管道的生存能力取决于平台。在 UNIX® 系统上,子进程始终在CLOSE后继续存在。在 Windows 系统上,进程的生存取决于进程的年龄。刚刚启动的子进程不会在CLOSE操作中幸存,但是一旦子进程完全建立,它就会在 CLOSE操作中幸存。

UNIX® 系统上,可以指定关闭管道命令设备时CLOSE命令应等待的时间。超时默认值为 30 秒。可以通过指定OPEN命令closetimeout位置参数来修改此默认值。可以通过指定可选的“I”位置参数来覆盖CLOSE命令的默认或指定超时。 “I”参数指定立即关闭(1 秒后关闭)。 CLOSE语法如下:

CLOSE cpipename:"I"

使用命名管道与 Visual Basic 进行通信

Windows 上,在 IRIS 中使用命名管道就像使用 TCP 设备一样,但使用设备名称|NPIPE|nnn而不是|TCP|nnnOPEN参数如下:

OPEN "|NPIPE|3":(server:pipename)

其中server是计算机名称, pipename是要连接到的管道的名称。

要连接到本地管道名,请使用“.” (引用的期间)作为服务器。要创建管道(作为服务器),请使用“” (不含内容的引号)作为服务器名称。以下是所有有效的服务器名称:

   OPEN "|NPIPE|3":(".":"localpipe")
   OPEN "|NPIPE|3":("mother":"test")
   OPEN "|NPIPE|3":("":"info")

服务器可以打开命名管道并在客户端打开同一命名管道之前立即发出写入。写操作将挂起,直到客户端打开命名管道。用户可以通过发出 Control-C 来中断挂起。

一旦打开,管道就像普通设备一样。在服务器端,客户端可以像 TCP 中一样通过以下方式断开连接:

   USE "|NPIPE|3":"DISCONNECT"

或者:

   USE "|NPIPE|3" WRITE *-2

OPEN 命令关键字

以下列表描述了仅使用OPEN命令控制命名管道的关键字。

/HOSTNAME=str

默认值:默认值为“” (空字符串),它将管道作为服务器打开。

对应于服务器位置参数,指定 Windows 计算机。当打开管道作为服务器时,不需要指定该关键字。使用”。” (带引号的句点)连接到本地管道名。

/IBUFSIZE=n

默认值:2048

指定命名管道输入缓冲区的大小,该缓冲区保存从管道接收但尚未传递到应用程序的数据。

### /INSTANCES=n

默认值:1

指定命名管道允许的最大实例数。大于1 的值允许多个服务器打开命名管道的实例,以便一次可以为多个客户端提供服务。

### /OBUFSIZE=n

默认值:2048

指定操作系统使用的输出缓冲区的大小。此缓冲区大小是建议性的,因为操作系统根据系统施加的约束来调整缓冲区的大小。

### /PIPENAME=str

无默认值。

对应于指定管道名称的pipelinename位置参数。

讨论 (0)1
登录或注册以继续