文章
· 十一月 10 阅读大约需 3 分钟

第十七章 TCP 客户端 服务器通信 - 使用OPEN命令

第十七章 TCP 客户端 服务器通信 - 使用OPEN命令

使用OPEN命令

OPEN命令保留一个TCP绑定设备供使用。其语法为:

OPEN devicename:parameters:timeout:mnespace
  • devicename - 一个|TCP|格式的字符串,后面跟着一些数字数字。设备名称的数字部分称为设备标识符。如果OPEN参数中没有指定端口号,则该设备标识符必须是唯一的5TCP端口号。如果在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主机的名称(来自本地系统的远程主机数据库),也可以是IPv4IPv6协议格式的IP地址。由于这些协议不兼容,服务器和客户端必须使用相同的Internet协议,否则传输将失败。

IPv4地址具有以下格式。N是介于0255之间的十进制整数:

n.n.n.n

IPv6地址的完整格式如下。H是具有四个十六进制数字的十六进制数:

h:h:h:h:h:h:h:h

通常,IPv6地址的缩写方式是消除前导零并用双冒号(::)替换连续的零部分;IPv6地址中只能使用一个双冒号。通过使用IPv4缩写规则,可以将IPv6环回地址指定为"::1"(这意味着前七个连续的h部分都具有值0000,并且第八个部分中的前导零被删除)。

可以使用OPEN关键字/USEIPV6来指定要使用的协议。

讨论 (0)1
登录或注册以继续