第十七章 TCP 客户端 服务器通信 - 使用OPEN命令
文章目录
- 第十七章 TCP 客户端 服务器通信 - 使用OPEN命令
- 使用`OPEN`命令
- `hostname` 参数
第十七章 TCP 客户端 服务器通信 - 使用OPEN命令
使用OPEN
命令
OPEN
命令保留一个TCP
绑定设备供使用。其语法为:
OPEN devicename:parameters:timeout:mnespace
-
devicename
- 一个|TCP|
格式的字符串,后面跟着一些数字数字。设备名称的数字部分称为设备标识符。如果OPEN
参数中没有指定端口号,则该设备标识符必须是唯一的5
位TCP
端口号。如果在OPEN
参数中指定了端口号(这是首选的实践),这个设备标识符可以是任何唯一的数字(最多2147483647
),只要单个作业使用的所有TCP设备名称是不同的。 -
parameters
- 可选-一系列一个或多个设备参数,用括号括起来,用冒号(:
)分隔。如果省略了某个参数,请为缺少的参数指定冒号分隔符。(对于服务器端OPEN
,始终省略第一个参数。)。具体参数说明如下。如果只指定第一个参数(
hostname
),可以省略括号。例如客户端open: open "|TCP|7000":"127.0.0.1":10
。如果不指定参数,则可以省略圆括号,但必须保留冒号作为分隔符。例如:服务器端open: open "|TCP|7000"::10
。 -
timeout
- 可选-IRIS
尝试打开TCP
设备的最大秒数。如果在此间隔内没有成功,它会将$TEST
设置为0
,并将控制权返回给进程。如果成功,它会将$TEST
设置为1
。在来自客户端的OPEN
命令中包含超时可防止客户端系统在服务器忙于处理另一个客户端时尝试打开连接时挂起。服务器一次只能打开一个连接。 -
mnespace
- 可选-支持所有的对象脚本OPEN命令。没有用于TCP
绑定的预定义助记符空间。
如果省略开放参数,则可以通过指定冒号分隔符来指示其缺失。
尽管TIMEOUT
参数是可选的,但强烈建议使用它,因为打开的成功或失败由$TEST
特殊变量的值指示,并且只有在指定了TIMEOUT
的情况下才会设置$TEST
。如果在超时到期之前打开尝试成功,则$TEST
设置为1
;如果超时到期,则$TEST
设置为0
。
如果Windows
系统上的tcp
连接尝试失败,则tcp
连接错误将被写入IRIS
系统错误日志,例如,错误代码10061=WSAECONNREFUSED
。
以下是客户端打开的示例,其中7000
是端口号,"127.0.0.1"
是parameters
参数(主机名,指定为IPv4
地址):
SET dev="|TCP|7000"
OPEN dev:("127.0.0.1":7000)
hostname
参数
客户端OPEN
需要HostName
参数。客户端参数可以只是主机名,也可以是主机名后跟其他冒号分隔的参数。如果仅指定主机名参数,则可以省略参数圆括号。
服务器端参数省略了主机名。
主机名可以是IP
主机的名称(来自本地系统的远程主机数据库),也可以是IPv4
或IPv6
协议格式的IP地址。由于这些协议不兼容,服务器和客户端必须使用相同的Internet
协议,否则传输将失败。
IPv4
地址具有以下格式。N
是介于0
到255
之间的十进制整数:
n.n.n.n
IPv6
地址的完整格式如下。H
是具有四个十六进制数字的十六进制数:
h:h:h:h:h:h:h:h
通常,IPv6
地址的缩写方式是消除前导零并用双冒号(::
)替换连续的零部分;IPv6
地址中只能使用一个双冒号。通过使用IPv4
缩写规则,可以将IPv6
环回地址指定为"::1"
(这意味着前七个连续的h部分都具有值0000
,并且第八个部分中的前导零被删除)。
可以使用OPEN
关键字/USEIPV6
来指定要使用的协议。