进程通讯支持库

进程通讯支持库 帮助手册20080811版 返回支持库手册 返回首页

提供进程之间通讯的几种方式。

操作系统支持： Windows

命令类别：

命名管道

其它数据类型：

邮槽服务器

邮槽客户机

内存映射文件

适用版本，进程通讯支持库 （1.1#2版）


命名管道

命名管道 类别 跳至：进程通讯支持库


创建命名管道

创建命名管道 命令 操作系统支持：Windows 所属类别：命名管道

命名管道可在不同进程之间，支持可靠的、单向或双向的数据通信。Win9x操作系统下不支持该命令。创建成功返回命名管道的句柄，否则返回0。

语法： 整数型 创建命名管道 （名称）

参数名 | 描 述
名称 | 必需的；文本型。欲创建命名管道的名称。

例程

说明

创建一个有名称的通信管道。其他机器都通过此名称访问此管道

参见：例程


监听命名管道

监听命名管道 命令 操作系统支持：Windows 所属类别：命名管道

监听一个已经创建好的命名管道，等待客户的连接，如果有客户连接则返回，没有客户连接的情况下，该方法处于“锁定”模式，不再向下执行。如果监听失败返回假。

语法： 逻辑型 监听命名管道 （命名管道句柄）

参数名 | 描 述
命名管道句柄 | 必需的；整数型。已经创建的命名管道句柄。

例程

说明

在没有客户进入的情况下，不能进行其他操作。

在没有客户进入的情况下，关闭窗口或关闭管道都结束不了本次监听。

在调试阶段，可以停止调试来结束监听；

在编译运行阶段，可以在任务管理器中结束进程来关闭。


连接命名管道

连接命名管道 命令 操作系统支持：Windows 所属类别：命名管道

连接一个已经创建完毕并在监听的命名管道。连接成功返回管道的句柄，失败返回0。

语法： 整数型 连接命名管道 （命名管道名称，超时时间）

参数名 | 描 述
命名管道名称 | 必需的；文本型。欲连接命名管道的名称。
超时时间 | 必需的；整数型。连接命名管道时的等待时间，-1为无限等待，其他为具体的等待时间，单位是毫秒。

例程

说明

连接一个监听状态下的管道。


读命名管道

读命名管道 命令 操作系统支持：Windows 所属类别：命名管道

从命名管道中读取数据。成功返回真，失败返回假。

语法： 逻辑型 读命名管道 （命名管道句柄，数据）

参数名 | 描 述
命名管道句柄 | 必需的；整数型。欲读取的命名管道句柄。
数据 | 必需的；字节集，参数数据只能提供变量。从命名管道中读取出的数据。

例程

说明

从命名管道中读取数据。如果命名管道中没有数据将出错。


写命名管道

写命名管道 命令 操作系统支持：Windows 所属类别：命名管道

向命名管道中写入数据，返回实际写入到命名管道中的字节数。

语法： 整数型 写命名管道 （命名管道句柄，数据）

参数名 | 描 述
命名管道句柄 | 必需的；整数型。欲写入的命名管道句柄。
数据 | 必需的；字节集。欲向命名管道中写入的数据。

例程

说明

向命名管道中写入数据。


断开管道连接

断开管道连接 命令 操作系统支持：Windows 所属类别：命名管道

一个命名管道的客户断开与命名管道的连接。

语法： 无返回值 断开管道连接 （命名管道句柄）

参数名 | 描 述
命名管道句柄 | 必需的；整数型。已经连接的命名管道句柄。

例程

说明

在客户端断开与命名管道的连接。


关闭命名管道

关闭命名管道 命令 操作系统支持：Windows 所属类别：命名管道

关闭并释放已经创建的命名管道。如果调用了“监听命名管道”，必须等待“监听命名管道”方法执行完毕后才能执行该方法，否则该方法执行过程中处于“锁定”状态。

语法： 无返回值 关闭命名管道 （命名管道句柄）

参数名 | 描 述
命名管道句柄 | 必需的；整数型。已经创建的命名管道句柄。

例程

说明

在服务端关闭创建的命名管道。


邮槽服务器

邮槽服务器 普通类型 操作系统支持：Windows 跳至：进程通讯支持库

该数据类型提供对邮槽服务器的创建，读写操作的支持。

方法：

创建 读数据 关闭

参见： 基本数据类型


创建 (邮槽服务器)

创建 方法 操作系统支持：Windows 所属对象：邮槽服务器

创建成功返回真，否则返回假。

语法： 逻辑型 邮槽服务器．创建 （邮槽名称）

参数名 | 描 述
邮槽名称 | 必需的；文本型。欲在服务器上创建的邮槽名称，注意在Win9x下使用，系统最大允许名称的长度为8位，多余的会被抛弃。

例程

说明

创建通信邮槽。


读数据 (邮槽服务器)

读数据 方法 操作系统支持：Windows 所属对象：邮槽服务器

只能在服务器端从邮槽中取出数据。读取成功返回真，否则返回假。

语法： 逻辑型 邮槽服务器．读数据 （数据）

参数名 | 描 述
数据 | 必需的；字节集，参数数据只能提供变量。从向邮槽中读出的数据。

例程

说明

在服务器端从邮槽中读取数据。


关闭 (邮槽服务器)

关闭 方法 操作系统支持：Windows 所属对象：邮槽服务器

关闭邮槽服务器。

语法： 无返回值 邮槽服务器．关闭 （）

例程

说明

关闭邮槽服务器。


邮槽客户机

邮槽客户机 普通类型 操作系统支持：Windows 跳至：进程通讯支持库

邮槽是一种简单的单向“进程间通信”机制，在两个进程之间建立一种不可靠的单向数据通信。在同一台计算机的不同进程之间，或在跨越整个网络的不同计算机的进程之间，协助进行消息的传输。邮槽的数据通讯方式是单向的，只能从客户机以数据报的形式广播给一个或者多个服务器。在Win9x下使用要注意一个问题:假如在一个读请求尚未完成的前提下，服务器应用突然中止运行，应用程序便会被永远地“挂起”，或者“凝结”。要想取消，唯一的办法就是重新启动Windows。为解决这个问题，可让服务器在单独一个线程中读取数据。

方法：

创建 写数据 关闭

参见： 基本数据类型


创建 (邮槽客户机)

创建 方法 操作系统支持：Windows 所属对象：邮槽客户机

邮槽客户机只能向邮槽中写入数据，不能从中读出数据。创建成功返回真，否则返回假。

语法： 逻辑型 邮槽客户机．创建 （服务器名称，邮槽名称）

参数名 | 描 述
服务器名称 | 必需的；文本型。欲连接的邮槽服务器名称，也可以是局域网的域名，这时表示客户机要连接这个局域网域内的所有计算机上名称为参数2的邮槽。该参数也可以是“.”，表示连接本机上的名称为参数2的邮槽。该参数也可以是“*”，表示连接系统主域内的所有计算机上的名称为参数2的邮槽。
邮槽名称 | 必需的；文本型。欲连接服务器上邮槽的名称。

例程

说明

创建邮槽客户。


写数据 (邮槽客户机)

写数据 方法 操作系统支持：Windows 所属对象：邮槽客户机

只能在客户机端向邮槽中写入数据。注意写入的数据长度有限制，最大的长度为424字节，如果通讯数据的长度太大，最好选用“命名管道”。写入成功返回真，否则返回假。

语法： 逻辑型 邮槽客户机．写数据 （数据）

参数名 | 描 述
数据 | 必需的；字节集。欲向邮槽中写入的数据，数据长度必须小于424字节，否则出错。

例程

说明

在客户机端向邮槽中写入数据。注意数据的大小。


关闭 (邮槽客户机)

关闭 方法 操作系统支持：Windows 所属对象：邮槽客户机

关闭已经创建的邮槽客户机。

语法： 无返回值 邮槽客户机．关闭 （）

例程

说明

关闭已经创建的邮槽客户。


内存映射文件

内存映射文件 普通类型 操作系统支持：Windows 跳至：进程通讯支持库

该数据类型提供对内存映射文件的创建，读写操作的支持。

方法：

创建映射文件 | 打开映射文件 | 映射到内存 | 读数据
写数据 | 解除映射 | 关闭映射文件 |

参见： 基本数据类型


创建映射文件 (内存映射文件)

创建映射文件 方法 操作系统支持：Windows 所属对象：内存映射文件

创建内存映射文件。执行成功返回真，否则返回假。

语法： 逻辑型 内存映射文件．创建映射文件 （文件名称，是否创建，文件大小，［名称］）

参数名 | 描 述
文件名称 | 必需的；文本型。欲创建内存映射文件的文件全路径名称。
是否创建 | 必需的；逻辑型。是打开一个已经存在的文件还是创建一个新文件。真代表创建一个新文件，假代表打开一个已经存在的文件。
文件大小 | 必需的；长整数型。欲创建内存映射文件的文件大小。如果是打开一个已经存在的文件，可以指定该值为0，表示创建的内存映射文件大小和文件本身大小是一致的。
名称 | 可选的；文本型。创建内存映射文件的名称，该参数可以为空，表示创建一个没有名称的内存映射文件。其他进程可以通过该名称打开内存映射文件。

例程

说明

创建文件的内存映射。注意创建的文件是否存在。


打开映射文件 (内存映射文件)

打开映射文件 方法 操作系统支持：Windows 所属对象：内存映射文件

打开一个其他进程创建的内存映射文件。执行成功返回真，否则返回假。

语法： 逻辑型 内存映射文件．打开映射文件 （名称）

参数名 | 描 述
名称 | 必需的；文本型。其他进程创建的内存映射文件名称。

例程

说明

打开一个文件的内存映射。


映射到内存 (内存映射文件)

映射到内存 方法 操作系统支持：Windows 所属对象：内存映射文件

将一个创建完毕的或已打开的内存映射文件的全部或一部分映射到进程的内存空间中。成功返回真，失败返回假。

语法： 逻辑型 内存映射文件．映射到内存 （起始位置，大小）

参数名 | 描 述
起始位置 | 必需的；长整数型。映射到内存的文件起始位置。注意该值一定要是系统分配内存的分配粒度。windows的分配粒度是64k，所以该值一定要是64k的倍数，否则会执行出错。起始位置的值从0开始。
大小 | 必需的；整数型。映射到内存的字节数量。该值等于0代表从起始位置开始文件其余部分全部映射到内存。

例程

说明

在内存中映射一段空间。要注意映射的位置和大小。

本命令与“解除映射”配对使用，映射到内存中必须用“解除映射”命令来解除内存映射。


读数据 (内存映射文件)

读数据 方法 操作系统支持：Windows 所属对象：内存映射文件

从已经创建或打开的内存映射文件中读出数据，成功返回真，失败返回假。注意：使用该命令时一定要注意不能超过映射文件的边界，否则会造成非法的内存访问，意外退出。

语法： 逻辑型 内存映射文件．读数据 （起始位置，长度，数据）

参数名 | 描 述
起始位置 | 必需的；长整数型。从已经映射到内存的内存映射文件中读出的数据的起始位置。起始位置的值从0开始。
长度 | 必需的；整数型。从已经映射到内存的内存映射文件中读出的数据的长度。
数据 | 必需的；字节集，参数数据只能提供变量。从内存映射文件中读出的数据，作为方法的返回值。

例程

说明

从内存映射中，读取数据。注意读取的位置和大小。


写数据 (内存映射文件)

写数据 方法 操作系统支持：Windows 所属对象：内存映射文件

向已经创建或打开的内存映射文件中写入数据，成功写入返回真，失败返回假。注意：使用该命令时一定要注意不能超过映射文件的边界，否则会造成非法的内存访问，意外退出。

语法： 逻辑型 内存映射文件．写数据 （起始位置，数据）

参数名 | 描 述
起始位置 | 必需的；长整数型。向内存映射文件中写入的数据的起始位置。起始位置的值从0开始。
数据 | 必需的；字节集。欲写入的数据。注意写数据时，数据的长度不能超过映射文件的边界。

例程

说明

向内存映射文件写入数据。要注意写入的位置和大小。


解除映射 (内存映射文件)

解除映射 方法 操作系统支持：Windows 所属对象：内存映射文件

“映射到内存”方法的反操作，将已经映射到内存的文件解除映射。

语法： 逻辑型 内存映射文件．解除映射 （）

例程

说明

解除内存的映射。与“映射到内存”命令配对使用。


关闭映射文件 (内存映射文件)

关闭映射文件 方法 操作系统支持：Windows 所属对象：内存映射文件

关闭已经创建或打开的内存映射文件。

语法： 无返回值 内存映射文件．关闭映射文件 （）

例程

说明

关闭映射文件。


系统基本数据类型列表及其说明如下：

  1. 字节型。可容纳 0 到 255 之间的数值。

  2. 短整数型。可容纳 -32,768 到 32,767 之间的数值，尺寸为 2 个字节。

  3. 整数型。可容纳 -2,147,483,648 到 2,147,483,647 之间的数值，尺寸为 4 个字节。

  4. 长整数型。可容纳 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的数值，尺寸为 8 个字节。

  5. 小数型。可容纳 3.4E +/- 38 (7位小数) 之间的数值，尺寸为 4 个字节。

  6. 双精度小数型。可容纳 1.7E +/- 308 (15位小数) 之间的数值，尺寸为 8 个字节。

  7. 逻辑型。值只可能为“真”或“假”，尺寸为 2 个字节。“真”和“假”为系统预定义常量，其对应的英文常量名称为“true”和“false”。

  8. 日期时间型。用作记录日期及时间，尺寸为 8 个字节。

  9. 文本型。用作记录一段文本，文本由以字节 0 结束的一系列字符组成。

  10. 字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换，在程序中允许使用字节数组的地方也可以使用字节集，或者相反。字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，使用数组型数值数据进行赋值等等，都可以被字节集所使用。两者之间唯一的不同是字节集可以变长，因此可把字节集看作可变长的字节数组。

  11. 子程序指针。用作指向一个子程序，尺寸为 4 个字节。具有此数据类型的变量可以用来间接调用子程序。参见例程 sample.e 中的相应部分。

    在以上的基本数据类型中，字节型、短整数型、整数型、长整数型、小数型、双精度小数型被统称为“数值型”，它们之间可以任意转换。不过编程需要注意转换可能带来的精度丢失。譬如：将整数 257 转换为字节后的结果为 1 ，这是因为值 257 超出了字节型数据的最大上限 255 ，从而产生了溢出。

    另外，通用型数据类型仅在系统内部使用，它能够匹配所有的系统基本数据类型、库定义数据类型、自定义数据类型。