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

第十六章 TCP 客户端 服务器通信

文章目录

  • 第十六章 TCP 客户端/服务器通信
  • `TCP` 客户端/服务器通信
  • `TCP` 连接概述
  • `TCP` 设备的 `OPEN` 命令

第十六章 TCP 客户端/服务器通信

TCP 客户端/服务器通信

本章介绍如何使用 TCP/IPIRIS 数据平台进程之间设置远程通信。

IRIS 支持两种互联网协议 (IP):TCPUDP。这些 Internet 协议允许 IRIS 进程与本地或远程系统上的进程通信,无论这些进程是否正在运行 IRIS

  • TCP IRIS 传输控制协议 (TCP) 绑定。在服务器和单个客户端之间建立双向连接。提供具有错误检查和纠正以及消息确认的可靠字节流数据传输。
  • UDP IRIS 用户数据报协议 (UDP) 绑定。提供服务器和大量客户端之间的双向消息传输。 UDP 不是基于连接的;每次传输数据包都是一个独立的事件。为本地数据包广播和远程多播提供快速和轻量级的数据传输。本质上不如 TCP 可靠。不提供消息确认。

TCP 绑定将 IRIS 连接到广泛的网络标准,这样 IRIS 用户就可以通过 I/O 命令使用底层网络协议的基本功能。

TCP/IP 协议允许系统进行通信,即使它们使用不同类型的网络硬件。例如,TCP 通过 Internet 连接在使用以太网的系统和使用令牌环的另一个系统之间传输消息。 TCP 控制数据传输的准确性。 IPInternet 协议在网络或 Internet 上的不同系统之间执行实际数据传输。

使用 TCP 绑定,可以创建客户端-服务器系统的客户端和服务器部分。在客户端-服务器类型的分布式数据库系统中,一个或多个客户端系统上的用户可以处理存储在另一个系统(称为服务器)上的数据库中的信息。

TCP 连接概述

要在系统之间创建客户端-服务器关系,必须遵循一组特定的约定:

  • 系统必须与适当的网络硬件和软件连接,包括 TCP/IP 协议软件。
  • 系统通过 TCP 端口相互通信。连接两端的进程必须使用相同的端口号。
  • 指定 TCP 端口号或代表它的设备的设备名称,作为 IRIS OPENUSECLOSE 命令中的设备。

使用这些约定,建立 TCP 绑定连接的一般过程是:

  1. 服务器进程向 TCP 设备发出 OPEN 命令。
  2. 服务器进程发出一个 USE 命令,然后是一个 READ 命令,等待来自客户端进程的输入。在客户端可以建立连接之前,服务器必须处于监听状态。当客户端打开连接并发送一些数据时,初始 READ 命令完成。可以在 OPEN 命令中包含“A”模式参数,以便在服务器接受连接后立即完成初始读取。
  3. 客户端进程发出一个 OPEN 命令,指定它要连接的 TCP 设备。
  4. 客户端进程发出一个USE命令,然后是一个WRITE命令来完成连接。 IRISWRITE命令中的所有字符复制到缓冲区。它不会将它们写入网络,直到发出write !WRITE #命令刷新缓冲区。
  5. 服务器读取客户端在其第一个 WRITE 命令中发送的字符后,双方可以继续发出 READWRITE 命令。这些命令对同一端口的顺序没有进一步限制。
  6. 任何一方都可以使用 CLOSEHALT 命令启动连接的关闭。最好先关闭客户端。如果服务器需要断开连接以便它可以接受来自另一个客户端进程的连接,可以改为发出 WRITE *-2 命令。

注意:此过程假定客户端和服务器都是 IRIS 进程(尽管任一进程都可以是非 IRIS 进程)。

以下部分详细介绍了如何使用 IRIS I/O 命令在客户端和服务器进程之间创建 TCP 绑定。

TCP 设备的 OPEN 命令

服务器和客户端进程都使用 ObjectScript OPEN 命令来启动连接。服务器通过发出 READ 命令完成连接,该命令接收客户端 OPEN 命令和第一个数据传输。

注意:如果在已经打开的 TCP 设备上发出 OPEN 命令,则第二个 OPEN 命令将被视为 USE 命令。即,忽略主机名和端口参数(保留第一个 OPEN 命令值)并更新模式和终止符参数。


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

相关文章:

  • ZCC5090EA适用于TYPE-C接口,集成30V OVP功能, 最大1.5A充电电流,带NTC及使能功能,双节锂电升压充电芯片替代CS5090EA
  • 从虚拟到现实:AI与AR/VR技术如何改变体验经济?
  • opc da 服务器数据 转 opc ua项目案例
  • 面经zhenyq
  • Element-ui的使用教程 基于HBuilder X
  • 目标检测——基于yolov8和pyqt的螺栓松动检测系统
  • 关于若依500验证码问题的求助
  • WPS Office手机去广高级版
  • PostgreSQL pg-xact(clog)目录文件缺失处理
  • MyBatis5-缓存
  • SpringBoot中使用Thymeleaf模板引擎
  • C# 选择导入文件的路径、导出文件的路径
  • [vulnhub] DarkHole: 1
  • Elasticsearch 实战应用:高效搜索与数据分析
  • 「OC」SDWebimage的学习
  • 万字长文解读深度学习——循环神经网络RNN、LSTM、GRU、Bi-RNN
  • 多线程的创建方式以及及Thread类详解
  • 小菜家教平台(五):基于SpringBoot+Vue打造一站式学习管理系统
  • axios 访问data类型和.net core 后端对应接收
  • Ubuntu和Debian系列的Release默认shell解释器变更
  • 虚拟现实技术在旅游行业的应用
  • 42.第二阶段x86游戏实战2-lua寻找状态指针
  • C++设计模式结构型模式———责任链模式
  • mapreduce综合应用案例 — 气象数据清洗
  • StarTowerChain 与 DePIN:共筑区块链新蓝图
  • 洛谷每日一题——P1036 [NOIP2002 普及组] 选数、P1045 [NOIP2003 普及组] 麦森数(高精度快速幂)