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

news/2024/11/23 3:01:53/

文章目录

  • 第二十六章 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.ppmy.cn/news/1548813.html

相关文章

AIGC ---探索AI生成内容的未来市场

文章目录 一、AIGC的市场现状与挑战1. 快速发展的生成模型 二、AIGC在内容生成中的应用场景1. 文本生成的实际案例2. 图像生成的多样化探索3. 跨模态内容生成的实现 三、AIGC市场的技术挑战与解决方案1. 数据质量问题2. 模型偏差问题3. 内容真实性问题 四、AIGC的未来趋势1. 多…

C/C++ 优化,strlen 示例

目录 C/C optimization, the strlen examplehttps://hallowed-blinker-3ca.notion.site/C-C-optimization-the-strlen-example-108719425da080338d94c79add2bb372 揭开优化的神秘面纱... 让我们来谈谈 CPU 等等&#xff0c;SIMD 是什么&#xff1f; 为什么 strlen 是一个很…

51c自动驾驶~合集30

我自己的原文哦~ https://blog.51cto.com/whaosoft/12086789 #跨越微小陷阱&#xff0c;行动更加稳健 目前四足机器人的全球市场上&#xff0c;市场份额最大的是哪个国家的企业&#xff1f;A.美国 B.中国 C.其他 波士顿动力四足机器人 云深处 绝影X30 四足机器人 &#x1f…

每日论文23-24ESSERC 6.4-16.1Ghz混合并联-串联谐振器

《A 6.4-to-16.1GHz Hybrid Parallel-Series Resonator Mode-Switching Oscillator with 206.6dBc/Hz FoMT at 1MHz Offset in 40nm CMOS》 24ESSERC 首先这篇文章有个地方我其实没太明白&#xff0c;它在title和行文的时候都写的是“ hybrid parallel-series resonator mode-…

MySQL 架构概览

show processlist;命令查询所有正在运行的线程 MySql架构从上到下分为网络连接层&#xff0c;系统服务层&#xff0c;存储引擎层&#xff0c;文件系统层 1.网络连接层主要负责维护客户端的连接&#xff0c;保存session会话&#xff0c;以及多线程下的连接管理。 2.系统服务层…

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别 1. Spark RDD 是否支持窗口操作&#xff1a; RDD 本身没有专门的窗口操作算子。原因&#xff1a; RDD 是一个弹性分布式数据集&#xff0c;设计为通用的、不可变的操作单元&#xff0c;主要用于批处理场景。窗口函…

信息学奥赛-一本通-第二部分 基础算法 --> 第五章 搜索与回溯算法

1317&#xff1a;【例5.2】组合的输出 【题目描述】 排列与组合是常用的数学方法&#xff0c;其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n)&#xff0c;我们可以简单地将n个元素理解为自然数1&#xff0c;2&#xff0c;…&#xff0c;n&#xff0c;从中任取r个数。 现…

Python-简单病毒程序合集(一)

前言&#xff1a;简单又有趣的Python恶搞代码&#xff0c;往往能给我们枯燥无味的生活带来一点乐趣&#xff0c;激发我们对编程的最原始的热爱。那么话不多说&#xff0c;我们直接开始今天的编程之路。 编程思路&#xff1a;本次我们将会用到os,paltform,threading,ctypes,sys,…