第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)

devtools/2024/11/16 12:53:01/

文章目录

  • 第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)
    • 立即发送模式(`Q` 模式)
    • 流模式(`S`模式)
    • 缓冲区大小
  • 服务器端`OPEN`命令

第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)

立即发送模式(Q 模式)

在立即发送模式下,每个 WRITE 命令都作为其自己的数据包输出。如果不使用立即发送模式,则必须包括终止符或发出命令 WRITE *–3 以输出数据包。

通过指定“Q”模式字符或/SENDIMMEDIATE(或/SEN)关键字参数进入此模式。要关闭此选项,请指定以下任一选项:

   USE TCPDEVICE:(/SEN=0)USE TCPDEVICE:(::"-Q")

要重新打开此选项,请指定以下任一选项:

   USE TCPDEVICE:(/SEN=1)USE TCPDEVICE:(::"+Q")

立即发送模式与/NODELAY模式结合使用,前者在每次写入时创建一个包,后者在创建每个包时立即发送。当这两个选项都启用时,单个数据突发的传输速度将最大化。当每个数据单元的及时传送至关重要时,例如在传输鼠标移动时,这是有用的。当两者都关闭时,一个数据包可能包含多个写入,一个传输可能包含多个数据包。这减少了网络流量并提高了整体性能。立即发送模式的默认设置为关闭。/NODELAY模式的默认设置为打开。

流模式(S模式)

在流模式下, IRIS不会保留数据流中的TCP消息边界。发送时,如果数据不适合消息缓冲区, IRIS会在将数据放入缓冲区之前刷新缓冲区。

接收时,可以接收最大字符串长度的数据。所有读取都等待达到终止符或缓冲区变满的完全超时。当禁用此模式(默认)时,处于数据包模式。

继承 TCP 设备的 Jobbed 进程自动设置为 Stream 格式。可以使用 USE 命令重置格式。

缓冲区大小

TCP 设备的 ibufsizobufsiz 参数指定用于 TCP 输入和输出的内部 IRIS 缓冲区的大小。在所有支持的平台上,它们可以取 1KB1MB 之间的值。然而,操作系统平台可能使用不同大小的输入和输出缓冲区。如果操作系统平台缓冲区小于 IRIS 缓冲区(例如,64KB1MB),性能可能会受到影响:WRITE 操作可能需要多次访问操作系统才能发送整个 IRIS 缓冲区; READ 操作可能会返回受操作系统缓冲区大小限制的较小块。为获得最佳性能,用户应试验当前操作系统以确定 ibufsizobufsiz 的哪些值可产生最佳结果。

服务器OPEN命令

处理服务器OPEN 时,它会建立一个 TCP 套接字并在套接字上侦听适当端口号上的传入连接请求。端口号要么在参数列表中明确指定,要么从设备名称的数字部分派生。在套接字设置为侦听后,OPEN 立即返回。

如果 OPEN 没有成功,则另一个进程可能已经在该端口号上侦听连接请求。

以下服务器OPEN 示例显示了一个设备规范,该规范允许读取和写入最大字符串大小的终止字符串,并使用最大长度读取和写入操作来整合 TCP 通道的使用。

   OPEN "|TCP|4":(:4200:"PSTE"::32767:32767)

此示例中的参数参数如下:因为这是服务器OPEN,所以省略了第一个参数(主机名)。第二个参数明确指定端口号 (4200)。第三个参数是模式代码字符。第四个参数(终止符)被省略。第五个参数是输入缓冲区大小。第六个参数是输出缓冲区大小。

在以下示例中,端口号未指定为参数;它源自设备名称的数字部分。此示例打开端口 4200,没有指定参数且超时为 10 秒:

   OPEN "|TCP|4200"::10

服务器OPEN 的默认输入缓冲区大小 (ibufsiz) 和输出缓冲区大小 (obufsiz) 参数值为 1,048,576 字节 (1 MB)。

服务器OPEN 支持可选的队列大小参数和可选的“G”模式参数。这些选项不可用于客户端 OPEN

服务器OPEN支持可选的/CLOSELISTEN关键字参数。此选项对于客户端OPEN不可用。


http://www.ppmy.cn/devtools/134437.html

相关文章

零基础上手WebGIS+智慧校园实例(1)【html by js】

请点个赞收藏关注支持一下博主喵!!! 等下再更新一下1. WebGIS矢量图形的绘制(超级详细!!),2. WebGIS计算距离, 以及智慧校园实例 with 3个例子!!…

ZeroSSL HTTPS SSL证书ACMESSL申请3个月证书

目录 一、引言 二、准备工作 三、申请 SSL 证书 四、证书选型 五、ssl重要性 一、引言 目前免费 Lets Encrypt、ZeroSSL、BuyPass、Google Public CA SSL 证书,一般免费3-6个月。从申请难易程度分析,zerossl申请相对快速和简单,亲测速度非…

PyTorch——从入门到精通:PyTorch简介与安装(最新版)【PyTorch系统学习】

前言 在这个由数据驱动的时代,深度学习已经成为了推动技术进步的核心力量。而PyTorch,作为当今最流行的深度学习框架之一,以其动态计算图、易用性和灵活性,受到了全球开发者和研究者的青睐。为了帮助更多的学习者和开发者掌握这一…

C#入门 023 什么是类(Class)

什么是“类” 是一种数据结构 是一种数据类型 代表现实世界中的“种类” 构造器和析构器 析构器 析构器(Destructor)是一种特殊的成员方法,用于在对象被垃圾回收器(Garbage Collector, GC)回收之前执行清理操作。…

第五章 Vue 组件与生命周期

学习目标 5.1 Vue组件5.1.1 为什么要使用组件5.1.2 组件入门5.1.2.1 全局组件5.1.2.2 局部组件 5.2 组件通讯5.2.1 父子组件定义5.2.2 父组件给子组件传值5.2.3 子组件给父组件传值5.2.4 单向数据流 5.3 插槽5.3.1 匿名插槽5.3.2 具名插槽 5.4 生命周期钩子函数5.4.1 生命周期图…

Bootstrap和jQuery开发案例

目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…

无人机应用场景:石油管道巡检技术详解

无人机在石油管道巡检中的应用,以其高效、便捷、灵活的特点,为石油管道的安全管理提供了有力支持。以下是对无人机在石油管道巡检技术方面的详细解析: 一、无人机巡检技术的概述 无人机巡检技术是指利用无人机搭载各种传感器和检测设备&…

大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载

随着生成算法、预训练模型、多模态数据分析等AI技术的聚集融合,AIGC技术的实践效用迎来了行业级大爆发。通用大模型技术的成熟推动了新一轮行业生产力变革,在投入提升与政策扶植的双重作用下,以大模型技术为底座、结合专业化金融能力的金融大…