文章
· 十一月 11 阅读大约需 4 分钟

第十八章 TCP 客户端 服务器通信 - 使用OPEN命令 - Supported参数

第十八章 TCP 客户端 服务器通信 - 使用OPEN命令 - Supported参数

Supported 参数

parameters 参数可以是以下格式之一:

hostname
(hostname{:port{:mode{:terminators{:ibufsiz{:obufsiz{:queuesize{:keepalivetime}}}}}}})

parameters 参数中的参数如下:

  • hostname - 可选 — IP 主机的名称、IPv4 协议格式的 IP 地址或 IPv6 协议格式的 IP 地址。指定为带引号的字符串。客户端 OPEN 需要主机名;对于服务器端 OPEN,省略(由占位符冒号表示)。
  • port - 可选 — 如果存在,这是用于连接的 TCP 端口号。如果此端口号为空或省略,则端口号从设备名称的数字部分派生。该参数可以是十进制的端口号,也可以是服务名,提交给本地系统的TCP服务名解析器。
  • mode - 可选——用引号括起来的字母代码字符的字符串。字母代码可以按任何顺序指定;由于 IRIS按从左到右的顺序执行字母代码,因此字母代码之间的交互在某些情况下可能决定首选顺序。默认为数据包模式。模式字符串可以由以下一个或多个字母代码组成:

    • A-接受模式。如果A处于打开状态,则在接受来自客户端作业的连接后,服务器上的初始读取将立即以零长度字符串终止。如果A为OFF,则读取将被阻止,直到超时或数据可用(以最先发生的为准)。
    • C-参见下面的回车模式。
    • D-参见下面的断开模式监控。
    • E-参见下面的转义序列处理模式。
    • G-使端口参数被解释为已打开的数据套接字的套接字描述符。
    • M-流模式下的标准IRIS设备。此模式是调用“PSTE”选项集的快捷方式。它产生了一种设备,其作用类似于标准的 IRIS设备,可用于在两个方向上传递任意行数据。可以打开流模式,以便可以发送或接收任意序列的字符串,而不会使缓冲区溢出。换行符被添加到输出,并从输入中删除。读命令会一直阻塞,直到出现以下情况之一:出现终止符、达到超时时间或已填满指定的读长度。
    • P - 使用记录终止字符填充输出。设置此模式后,WRITE !除了刷新写入缓冲区外,还发送 LF(换行)和 WRITE # 发送 FF(换页)。 WRITE *-3 命令可用于启动缓冲数据的发送,而无需将任何字符插入数据流。请注意 WRITE *-3 只是刷新写入缓冲区而不发送任何终止符,因此不会向接收程序发出数据已完成的信号。 WRITE *-3 更常用于 Wait (W) 模式,不需要终止符。
    • Q—请参阅下面的立即发送模式。
    • S—参见下面的流模式。
    • T—输入端的标准终止符。设置时,CR、LFFF 控制字符用作读取终止符。
    • W—等待模式。在这种模式下,WRITE !WRITE # 命令不会导致 TCP 设备刷新网络输出缓冲区。等待模式导致 TCP 设备等待,直到下一个 WRITE *-3 命令刷新缓冲区并传输数据。
  • terminators - 可选-最多包含八个用户终止符的列表,这些字符将终止在TCP绑定设备上的读取。如果同时指定T模式和终止符,则会忽略T模式。

  • ibufsiz - 可选-输入缓冲区大小。在内部,已从网络读取但尚未传送到 IRIS程序的字符缓冲在可保存ibufsiz字节的数据区中。
  • obufsiz - 可选-输出缓冲区大小。在连续的“SEND”操作之间,TCP设备可以缓冲的最大数据量。发送操作意味着将缓存的数据发送到网络。WRITE!WRITE#WRITE*-3命令可以生成发送操作。

    指定S模式时,会自动生成发送操作,以便在输出缓冲区太满时发送输出缓冲区的内容。但是,在完成消息创建后,程序员仍必须使用其中一个发送操作来确保消息已发送。

    当未指定S模式时,如果写入操作将在缓冲区中放置足够的数据以超过输出缓冲区大小,则会发生<WRITE>错误。请注意,尝试写入本身比输出缓冲区大小更长的字符串总是失败。

  • queuesize - 可选-一个整数,指定有多少客户端作业可以排队等待与服务器的连接。仅用于服务器端打开。默认值为5。最大值取决于TCP实施,但不能超过1000

  • keepalivetime - 可选-(仅限WindowsAIXLinux)允许为此设备设置不同于系统默认的保活计时器。指定使TCP连接保持活动状态的整数秒。有效值介于30432000之间。(432000秒等于5天。)。小于30的值默认为30。如果省略或设置为0,则使用系统范围的默认保活计时器。有关详细信息,请参见/KEEPALIVE关键字选项。

    TCP设备打开时,保活计时器不一定开始计时。它通常在连接已建立时开始计时。也就是说,当初始读取连接已成功完成时。

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