第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字

第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字

TCP设备的OPENUSE命令关键字

可以使用位置参数(如上所述)或关键字参数。下表描述了使用OPENUSE命令控制TCP设备的关键字。还有其他只能在OPEN命令中指定的OPEN-only关键字(本章稍后将描述)。所有关键字参数都是可选的。

TCP设备的OPENUSE命令关键字

Keyword Default Description
/ABSTIMEOUT[=1] 0 指定读超时行为。确定TCP在接收到数据时是否应重新初始化超时时间。如果/ABSTIMEOUT=0(默认值),则每次接收数据时timeout都会重置为原始值。如果/ABSTIMEOUT/ABSTIMEOUT=1,则在接收数据时超时时间继续倒数。
/ACCEPT[=n] or /ACC[=n] 0 对应于“A”模式参数字符,该参数指定一旦接受来自客户端作业的连接,服务器上的初始读取就以零长度字符串终止。/ACCEPT/ACCEPT=n对于n的非零值启用A模式。/ACCEPT=n表示零值n禁用a模式。
/CLOSEFLUSH[=n] 1 指定当设备关闭时,对保留在输出缓冲区中的数据的处理。/CLOSEFLUSH/CLOSEFLUSH=n对于n的非零值将刷新剩余数据。/CLOSEFLUSH=n表示n为零时丢弃剩余数据。
/COMPRESS=str "" 指定流数据压缩类型。可以启用压缩类型为ZLIBZSTD。可以指定/COMPRESS=""来禁用压缩。/COMPRESS="zlib"等价于/GZIP=1。要压缩字符串,使用%SYSTEM.Util.Compress()
/CRLF[=n] 0 对应于“C”模式参数字符,它修改输入和输出时回车的处理。/CRLF/CRLF=nn的非零值启用C模式。/CRLF=n对于零值n禁用C模式。
/ESCAPE[=n]or/ESC[=n] 0 对应于“E”模式参数字符,它指定输入流中的转义序列被解析并放入$ZB中。/ESCAPE/ESCAPE=n对于n的非零值启用E模式。/ESCAPE=n对于零值n禁用E模式。
/GZIP[=n] 1 指定兼容gzip的流数据压缩。/GZIP/GZIP=n(对于n的非零值)在WRITE时进行压缩,在READ时进行解压缩。/GZIP=0禁用压缩和解压。在发出/GZIP=0来禁用压缩和解压之前,检查$ZEOS特殊变量以确保流数据读取没有进行。/GZIP压缩对I/O转换没有影响,例如使用/IOTABLE建立的转换。这是因为压缩是在所有其他转换(加密除外)之后应用的,而解压是在所有其他转换(加密除外)之前应用的。
/IOTABLE[=name]or/IOT[=name] 如果不指定name,则使用设备默认的I/O转换表。 为设备建立I/O转换表。
/KEEPALIVE=n 系统默认值 (仅适用于WindowsAIXLinux)为设备设置不同于系统默认值的保活定时器。一个整数,指定TCP连接保持活跃的秒数。与位置参数keepalivetime相同。有效值为30 ~ 432000。(432000秒等于5天。)小于30的值默认为30。如果省略或设置为0,则使用系统默认值。可以使用/NOKEEPALIVE禁用此设置;一旦禁用,它就不能重新启用,直到这个TCP设备被关闭。
/NODELAY=n 1 指定数据包是捆绑发送还是单独发送。如果/NODELAY=1(缺省值),则立即发送每个数据包。如果/NODELAY=0, TCP驱动程序使用优化算法将包捆绑在一起。这可能会对单个数据包造成轻微的传输延迟,但通过减少网络流量,可以提高整体性能。/NODELAY没有对应的模式参数字符。/NODELAY的使用应该与/SENDIMMEDIATE的使用协调。
/NOKEEPALIVE 如果指定该参数,则在此设备上禁用系统级TCP keepalive定时器。 IRIS在打开任何TCP设备时默认启用此定时器;在OPENUSE上发出/NOKEEPALIVE选项会覆盖这个默认值。如果/KEEPALIVE已被用于设置非默认的KEEPALIVE定时器,/NOKEEPALIVE将禁用该KEEPALIVE定时器。一旦禁用了keepalive定时器,就没有办法重新启用它,直到TCP设备关闭。看到/ KEEPALIVE
/NOXY[=n] 0 禁止$X$Y处理:/NOXY/NOXY=n(对于n的非零值)禁用$X$Y处理。当设备$X/$Y未被使用时,该选项可以提高性能,例如CSP。它可以极大地提高READWRITE操作的性能。此选项是超级服务器工作作业的默认设置。当/NOXY=1时,$X$Y变量的值是不确定的,保证金处理(取决于$X)被禁用。/NOXY=0启用$X$Y处理;这是默认值。/TCPNOXY/NOXY的同义词。
/OBCOUNT=n 16 用于/ZEROCOPY的输出缓冲区数量。输出缓冲区的默认数量是16。输出缓冲区的最小数量是2,最大数量是128n的值必须是2的幂;如果指定了非2的幂值,则将其四舍五入为2的幂。
/PAD[=n] 0 对应于" P "模式参数字符,该参数指定当WRITE !(LF结束符)或writ# (FF结束符)被执行。/PAD/PAD=n为n的非零值启用P模式。/PAD=n对于零值n禁用P模式。
/PARAMS=str or /PAR=str 没有默认 对应于模式位置参数。(它提供了一种以位置无关的方式指定模式字符串的方法。)
/POLL[=n] or /POLLDISCON[=n] 对应于“D”模式参数字符,它指定断开连接的异步监视。/POLL/POLL=1对应+D/POLL=0对应-D
/PSTE[=n] 0 对应于“M”模式参数字符,这是指定P、S、T和E模式参数字符的一种简便方法。/PSTE/PSTE=n的非零值n启用P, S, T和E模式。/PSTE=n对于零值n禁用这些模式。
/SENDIMMEDIATE[=n] or /SEN[=n] 0 对应于“Q”模式参数字符,它指定发送立即模式。
`/SSL="cfg[ pw] [ DNShost]" or /TLS="cfg[ pw] [ DNShost]"` 没有默认 来自客户端,指定设备根据客户端指定的配置和服务器需求尝试协商SSL/ tls安全连接。当将套接字作为服务器保护时,根据服务器指定的配置和任何客户端要求指定服务器需要SSL/ tls安全的连接。
cfg 指定连接或套接字的配置名称。 pw 指定可选的私钥文件密码。 DNShost 指定特定服务器的完全限定 DNS 主机名,用于服务器名称指示 (SNI) TLS 扩展。详情见下文。
此配置名称仅在 OPENUSE 命令后第一次执行 I/O 时使用。随后的调用将被忽略。 /SSL=""/TLS=""将被忽略。
重要提示:使用 SSL/TLS 打开新的或保护现有 TCP 连接时包含密码的功能仅供实时交互使用。你不应该在没有保护的情况下持久存储私钥密码。如果需要存储此类密码,请在类中使用 Security.SSLConfigsPrivateKeyPassword 属性。
/STREAM[=n] or /STR[=n] 0 对应于“S”模式参数字符,它指定了一种不保留 TCP 消息边界的处理数据的流模式。 /STREAM/STREAM=n 对于n 的非零值启用 S模式。 /STREAM=n 对于 n 的零值禁用 S 模式。
/TCPNOXY 已弃用。 /NOXY 的同义词。
/TCPRCVBUF=n 默认接收缓冲区大小 设置接收队列缓冲区大小,以字节为单位。可用于从默认值增加缓冲区大小以支持 TCP 协议大窗口。大窗口提高了具有长延迟或非常高带宽的链路的性能。有关适当的值,请参阅您的操作系统/硬件文档。
/TCPSNDBUF=n 默认发送缓冲区大小 设置发送队列缓冲区大小,以字节为单位。可用于从默认值增加缓冲区大小以支持 TCP 协议大窗口。大窗口提高了具有长延迟或非常高带宽的链路的性能。
/TERMINATOR=str or /TER=str 无默认 对应于 terminators 位置参数,它建立用户定义的终止符。
/TMODE[=n] or /TMO[=n] 0 对应“T”模式参数字符,指定CR、LF、FF为标准读终止符。 /TMODE/TMODE=n对于n 的非零值启用 T 模式。 /TMODE=n 对于 n 的零值禁用 T 模式。
/TRANSLATE[=n] or /TRA[=n] 1 /TRANSLATE/TRANSLATE=n 对于 n 的非零值启用设备的 I/O 转换。 /TRANSLATE=n 对于 n 的零值禁用设备的 I/O 转换。
/WAIT[=n] 0 对应于“W”模式参数字符,这会导致输出缓冲区不被 WRITE 刷新!和WRITE # 命令。相反,刷新会等到下一个WRITE *-3 命令。 /WAIT/WAIT=n 对于 n 的非零值启用 W 模式。/WAIT=n 对于 n 的零值禁用 W 模式。
/WRITETIMEOUT[=n] 1 TCP写操作建立超时时间(以秒为单位)。如果写操作没有在n秒内完成, IRIS将发出<TCPWRITE>错误。如果发出<TCPWRITE>错误,应用程序应该立即关闭TCP设备以防止数据丢失。在<TCPWRITE>错误后, IRIS将不会尝试TCP写操作。最小n值与系统相关。如果n小于该平台的最小超时值, IRIS将使用该平台的最小超时值。n不能小于2。默认值(-1)表示不强制执行超时。
/XYTABLE[=name] or /XYT[=name] 如果不指定name,则使用设备默认的$X/$Y动作表。 为设备建立一个$X/$Y操作表。
/ZEROCOPY[=bool] 0 如果指定了/ZEROCOPY/ZEROCOPY=1,则开启该TCP设备的ZEROCOPY特性。ZEROCOPY支持TCP设备的多个输出缓冲区,以便在send()上利用MSG_ZEROCOPY;TCP设备不能重用输出缓冲区,直到缓冲区被TCP堆栈的通知确认。使用/OBCOUNT关键字为TCP设备设置输出缓冲区的数量。如果指定/ZEROCOPY=0,则关闭此TCP设备的ZEROCOPY特性。Linux 4.15及以上版本支持MSG_ZEROCOPY。如果操作系统不支持MSG_ZEROCOPY,则TCP设备的ZEROCOPY始终处于关闭状态。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容