第十六章 TCP 客户端/服务器通信
TCP
客户端/服务器通信
本章介绍如何使用 TCP/IP
在 IRIS
数据平台进程之间设置远程通信。
IRIS
支持两种互联网协议 (IP
):TCP
和 UDP
。这些 Internet
协议允许 IRIS
进程与本地或远程系统上的进程通信,无论这些进程是否正在运行 IRIS
。
TCP IRIS
传输控制协议 (TCP
) 绑定。在服务器和单个客户端之间建立双向连接。提供具有错误检查和纠正以及消息确认的可靠字节流数据传输。UDP IRIS
用户数据报协议 (UDP
) 绑定。提供服务器和大量客户端之间的双向消息传输。UDP
不是基于连接的;每次传输数据包都是一个独立的事件。为本地数据包广播和远程多播提供快速和轻量级的数据传输。本质上不如TCP
可靠。不提供消息确认。
TCP
绑定将 IRIS
连接到广泛的网络标准,这样 IRIS
用户就可以通过 I/O
命令使用底层网络协议的基本功能。
TCP/IP
协议允许系统进行通信,即使它们使用不同类型的网络硬件。例如,TCP
通过 Internet
连接在使用以太网的系统和使用令牌环的另一个系统之间传输消息。 TCP
控制数据传输的准确性。 IP
或 Internet
协议在网络或 Internet
上的不同系统之间执行实际数据传输。
使用 TCP
绑定,可以创建客户端-服务器系统的客户端和服务器部分。在客户端-服务器类型的分布式数据库系统中,一个或多个客户端系统上的用户可以处理存储在另一个系统(称为服务器)上的数据库中的信息。
TCP
连接概述
要在系统之间创建客户端-服务器关系,必须遵循一组特定的约定:
- 系统必须与适当的网络硬件和软件连接,包括
TCP/IP
协议软件。 - 系统通过
TCP
端口相互通信。连接两端的进程必须使用相同的端口号。 - 指定
TCP
端口号或代表它的设备的设备名称,作为IRIS
OPEN
、USE
和CLOSE
命令中的设备。
使用这些约定,建立 TCP
绑定连接的一般过程是:
- 服务器进程向
TCP
设备发出OPEN
命令。 - 服务器进程发出一个
USE
命令,然后是一个READ
命令,等待来自客户端进程的输入。在客户端可以建立连接之前,服务器必须处于监听状态。当客户端打开连接并发送一些数据时,初始READ
命令完成。可以在OPEN
命令中包含“A”
模式参数,以便在服务器接受连接后立即完成初始读取。 - 客户端进程发出一个
OPEN
命令,指定它要连接的TCP
设备。 - 客户端进程发出一个
USE
命令,然后是一个WRITE
命令来完成连接。IRIS
将WRITE
命令中的所有字符复制到缓冲区。它不会将它们写入网络,直到发出write !
或WRITE #
命令刷新缓冲区。 - 服务器读取客户端在其第一个
WRITE
命令中发送的字符后,双方可以继续发出READ
和WRITE
命令。这些命令对同一端口的顺序没有进一步限制。 - 任何一方都可以使用
CLOSE
或HALT
命令启动连接的关闭。最好先关闭客户端。如果服务器需要断开连接以便它可以接受来自另一个客户端进程的连接,可以改为发出WRITE *-2
命令。
注意:此过程假定客户端和服务器都是 IRIS
进程(尽管任一进程都可以是非 IRIS
进程)。
以下部分详细介绍了如何使用 IRIS I/O
命令在客户端和服务器进程之间创建 TCP
绑定。
TCP
设备的 OPEN
命令
服务器和客户端进程都使用 ObjectScript OPEN
命令来启动连接。服务器通过发出 READ
命令完成连接,该命令接收客户端 OPEN
命令和第一个数据传输。
注意:如果在已经打开的 TCP
设备上发出 OPEN
命令,则第二个 OPEN
命令将被视为 USE
命令。即,忽略主机名和端口参数(保留第一个 OPEN
命令值)并更新模式和终止符参数。