第十六章 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.mzph.cn/pingmian/59889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学二】线性代数-矩阵-初等变换、初等矩阵

考试要求 1、理解矩阵的概念,了解单位矩阵、数量矩阵、对角矩阵、三角矩阵、对称矩阵、反对称矩阵和正交矩阵以及它们的性质. 2、掌握矩阵的线性运算、乘法、转置以及它们的运算规律,了解方阵的幂与方阵乘积的行列式的性质. 3、理解逆矩阵的概念,掌握逆矩阵的性质以及矩阵可…

DevCheck Pro手机硬件检测工具v5.33

前言 DevCheck Pro是一款手机硬件和操作系统信息检测查看工具,该软件的功能非常强大,为用户提供了系统、硬件、应用程序、相机、网络、电池等一系列信息查看功能 安装环境 [名称]:DevCheckPro [版本]:5.33 [大小]&a…

教程:FFmpeg结合GPU实现720p至4K视频转换

将一个 720p 的视频放大编码到 4K,这样的视频处理在很多业务场景中都会用到。很多视频社交、短视频、视频点播等应用,都会需要通过服务器来处理大量的视频编辑需求。 本文我们会探讨一下做这样的视频处理,最低的 GPU 指标应该是多少。利用开源…

鸿蒙进阶篇-网格布局 Grid/GridItem(二)

hello大家好,这里是鸿蒙开天组,今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem,上一篇博文我们已经学习了固定行列、合并行列和设置滚动,这一篇我们将继续学习Grid的用法,实现翻页滚动、自定义滚动条样式&…

React教程(详细版)

React教程(详细版) 1,简介 1.1 概念 react是一个渲染html界面的一个js库,类似于vue,但是更加灵活,写法也比较像原生js,之前我们写出一个完成的是分为html,js,css&…

自然语言处理在客户服务中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 自然语言处理在客户服务中的应用 自然语言处理在客户服务中的应用 自然语言处理在客户服务中的应用 引言 自然语言处理概述 定义…

2节串联锂电池充电管理芯片,有5V升压,9-12V降压,快充升降压

从上面第一句话我们知道了2节串联锂电池的供电电压范围是:6V-8.4V,锂电池充电管理是随着电池电压提高而增加充电电压,直到充满电压8.4V。如2节串联锂电池电压是6V时,充电管理芯片会控制充电电压如7V, 2节串联锂电池的电…

服务器数据恢复—EVA存储故障导致上层应用不可用的数据恢复案例

服务器存储数据恢复环境: 一台EVA某型号控制器EVA扩展柜FC磁盘。 服务器存储故障&检测: 磁盘故障导致该EVA存储中LUN不可用,导致上层应用无法正常使用。 服务器存储数据恢复过程: 1、将所有磁盘做好标记后从扩展柜中取出。硬…

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…

Qt中 QWidget 和 QMainWindow 区别

QWidget 用来构建简单窗口 QMainWindow 用来构建更复杂的窗口,QMainWindow 继承自QWidget,在QWidget 的基础上提供了菜单栏、工具栏、状态栏等功能 菜单栏(QMenuBar)工具栏(QToolBar)状态栏(Q…

【MIT-OS6.S081笔记1】Chapter1阅读摘要:Operating system interfaces

记录阅读《xv6: a simple, Unix-like teaching operating system》的一些摘要,这是第一章的内容:Operating system interfaces。 fork函数作用:fork创建一个新进程,称为子进程,其内存内容与调用进程(称为父…

学习python的第七天之数据类型——str字符串

学习python的第七天之数据类型——str字符串 Python 中的字符串(String)是最常用的数据类型之一,用于存储和表示文本信息。Python 中的字符串是不可变的,这意味着一旦创建了一个字符串,就不能修改它(但可以…

【三维重建】Semantic Gaussians:开放词汇的3DGS场景理解

文章目录 摘要一、引言二、主要方法1.3D Gaussian Splatting2.其他方法2.1 Gaussian Grouping(ECCV 2024)2.2 GARField 3. 2D Versatile 投影4. 3D Semantic Network4. 推理 四、实验1. 实验设置2.定量结果 论文:https://arxiv.org/pdf/2403.…

华为OD机试真题-仿LISP计算

题目描述: LISP 语言唯一的语法就是括号要配对。 形如(OP P1 P2 …),括号内元素由单个空格分割。 其中第一个元素 OP 为操作符,后续元素均为其参数,参数个数取决于操作符类型。 注意: 参数 P1,P2 也有可能是另外一个嵌套的 (O…

centos7的maven配置

首先进入conf配置文件夹下的setting.xml 要改两个地方 第一&#xff1a;设置镜像源 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>c…

思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉哦“ (**)

Linux vi/vim | 菜鸟教程 https://zhuanlan.zhihu.com/p/602675406 Linux Vim编辑器的基本使用_vim文本编辑器-CSDN博客 思考 1. 记忆公式&#xff1a; 按键操作的 7 字真言 1&#xff1a; "鱼爱返 说 温泉哦" v i Esc : wq ! ----------- 一般的简单…

Web服务nginx基本实验

安装软件&#xff1a; 启动服务&#xff1a; 查看Nginx服务器的网络连接信息&#xff0c;监听的端口&#xff1a; 查看默认目录&#xff1a; 用Windows访问服务端192.168.234.111的nginx服务&#xff1a;&#xff08;防火墙没有放行nginx服务&#xff0c;访问不了&#xff09; …

Ubuntu实现双击图标运行自己的应用软件

我们知道在Ubuntu上编写程序&#xff0c;最后编译得到的是一个可执行文件&#xff0c;大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便&#xff0c;下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…

【JAVA】正则表达式中的捕获组和非捕获组

在Java中&#xff0c;正则表达式中的捕获组&#xff08;Capturing Groups&#xff09;和非捕获组&#xff08;Non-Capturing Groups&#xff09;是用来对匹配的部分进行分组的技术。它们在处理复杂的匹配模式时非常有用。 捕获组 (Capturing Groups) 捕获组不仅将一部分正则表…

openresty入门教程:init_by_lua_block

init_by_lua_block 是 Nginx 配置中用于在 Nginx 启动时执行 Lua 脚本的一个指令。这个指令通常用于初始化全局变量、设置共享内存&#xff0c;或者执行一些需要在服务器启动时完成的准备工作。 以下是一个简单的 init_by_lua_block 使用示例&#xff1a; 1. 安装 Nginx 和 L…