当前位置: 首页 > article >正文

第二十六章 TCP 客户端 服务器通信 - $ZB 和 READ 命令

文章目录

  • 第二十六章 TCP 客户端 服务器通信 - $ZB 和 READ 命令
      • `$ZB` 和 `READ` 命令
  • `TCP` 设备的 `WRITE` 命令
    • `WRITE`如何工作
    • `WRITE` 修改 `$X` 和 `$Y`
    • `WRITE`命令错误
    • `WRITE`控制命令

第二十六章 TCP 客户端 服务器通信 - $ZB 和 READ 命令

$ZBREAD 命令

$ZB 保存终止读取的字符。该字符可以是以下之一:

  • 终止字符,例如回车
  • 固定长度 READ x#y 的第 y 个字符
  • READ *X 的单个字符
  • 定时读取过期后的空字符串
  • 转义序列
  • 请注意,如果一个字符串以 CR LF 结尾,则只有 CR 会放在 $ZB 中。

TCP 设备的 WRITE 命令

在使用 OPENUSE 建立连接后,WRITE 命令将数据从客户端或服务器发送到 TCP 设备。

语法如下:

WRITE x
WRITE ! 
WRITE #

WRITE如何工作

WRITE x 在建立连接后将 x 从客户端或服务器发送到缓冲区。

WRITE !WRITE # 不表示换行和换页。相反,它们告诉 IRIS 刷新缓冲区中保留的所有字符,并通过网络将它们发送到目标系统。

可以使用 %SYSTEM.INetInfo类的 TCPStats() 方法确定当前 TCP 连接执行的写入次数。

WRITE 修改 $X$Y

IRIS 将缓冲区中的字符数存储在 $X 特殊变量中。

ASCII 字符 <return><line feed> 不包括在此计数中,因为它们不被视为记录的一部分。用 WRITE 刷新缓冲区!将 $X 重置为 0,并将 $Y 的值增加 1。使用 WRITE # 刷新缓冲区将 ASCII 字符 <form feed> 作为单独的记录写入,并将 $Y 重置为 0

WRITE命令错误

在以下任何情况下,都可能收到 <WRITE> 错误。

  • 如果超过最大字符串大小(1024 个字符)而不刷新缓冲区。
  • 如果在其中没有字符时刷新写入缓冲区(TCP/IP 忽略长度为 0 的记录)。
  • 如果在服务器收到来自客户端的连接请求之前从服务器向客户端发送 WRITE 命令。 ( IRIS 在服务器上产生 <WRITE> 错误。)

WRITE控制命令

TCP 绑定设备支持一系列具有 WRITE *-n 语法的控制命令。

  • WRITE *-2 - 在当前连接到客户端的服务器模式会话上,此命令会断开与会话的连接。要接受新会话,可以在设备上执行新的 READ 命令。
  • WRITE *-3 - 将任何缓冲的输出发送出 TCP 连接;即,对输出缓冲区中的数据执行 TCP SEND 操作。如果数据是压缩(/GZIP)流数据,*-3 发送数据时不标记压缩端点。将 $X 重置为 0。将 $Y 加 1。如果没有缓冲输出,则此命令不执行任何操作。
  • WRITE *-99 - 发送压缩 (/GZIP) 流数据。首先用压缩端点标记输出缓冲区中的数据,然后通过对输出缓冲区数据执行 TCP SEND 操作来发送此压缩流数据。

http://www.kler.cn/a/406977.html

相关文章:

  • MySQL 中的锁
  • 分布式 Data Warebase - 构筑 AI 时代数据基石
  • unity li2cpp逆向原理是什么?
  • 基于ToLua的C#和Lua内存共享方案保姆级教程
  • 谁的年龄最小(结构体专题)
  • 【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL
  • goframe开发一个企业网站 MongoDB 完整工具包19
  • c#:winform调用bartender实现打印(学习整理笔记)
  • 使用IDEA构建springboot项目+整合Mybatis
  • Redis相关面试题汇总
  • HARCT 2025 新增分论坛7:机器人和自动化的新趋势
  • CMake笔记:install(TARGETS target,...)无法安装的Debug/lib下
  • 常见LLM大模型概览与详解
  • 【AI日记】24.11.23 学习谷歌数据分析初级课程-第4课
  • linux通过手工删除文件卸载oracle 11g rac的具体步骤
  • Springboot项目搭建(4)-文章管理接口
  • 《操作系统 - 清华大学》4 -5:非连续内存分配:页表一反向页表
  • 3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
  • python安装包中的一些问题(一):conda list 已经安装的包为啥在spyder pip list中没有?
  • 从监控异常发现网络安全
  • Exploring Prompt Engineering: A Systematic Review with SWOT Analysis
  • 本地安装YAPI
  • 基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
  • go 接口类型断言
  • 高精度计算题目合集
  • 【报错】C++未定义的引用