第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备
第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备
当前 TCP 设备
可以使用 %SYSTEM.TCPDevice方法返回当前 TCP 设备的 IP 地址和端口号。可以使用 Help() 方法列出这些方法,如下所示:
DO $SYSTEM.TCPDevice.Help()
可以通过在 Help() 中指定方法名称来显示有关特定方法的信息,如以下示例所示:
DO $SYSTEM.TCPDevice.Help("LocalAddr")
IMP>DO $SYSTEM.TCPDevice.Help("LocalAddr")
method:class的描述 LocalAddr:%SYSTEM.TCPDevice
LocalAddr(Format:%Integer=0)
Get local IP address of current TCP device.
Parameters:
Format - The format of address to be returned. If this argument is omitted the default value is 0. The value could be:
- 0: in text format, 'dotted' decimal string for IPV4, colon-hex address string for IPV6.
- 1: in binary format, 4 character length for IPV4, 16 characters for IPV6.
Return:
Returns the local IP address associated with the TCP device. It could be in binary or text format depends on the Format parameter.
For binary format the IP address is in Network order.
If the current device ($IO) is not a TCP device, it gets error.
If the TCP device is in 'listening' state, the IP address would be all zeros (INADDR_ANY).
TCP 设备的 USE 命令
从客户端或服务器发出的 USE 命令使可以准备使用之前打开的 TCP 连接发送或接收数据。它具有以下语法(必须指定冒号,如图所示):
USE devicename:(::mode:terminators)
devicename-|TCP|形式的字符串后跟一些数字。设备名称的数字部分称为设备标识符。如果在OPEN参数中未指定端口号,则此设备标识符必须是唯一的五位TCP端口号。如果在OPEN参数中指定了端口号(这是首选做法),则该设备标识符可以是任何唯一的数字,只要单个作业使用的所有 TCP 设备名称都是不同的。mode- 可选——USE支持与OPEN相同的模式参数。请参阅“TCP 设备的OPEN和USE命令关键字”。terminators- 可选 — 最多八个用户终止字符的列表,这些字符将终止TCP绑定设备上的读取。同时指定T模式和用户终止符是没有意义的,但如果这样做,T模式将被忽略。
最简单的 USE 形式从 OPEN 命令中获取其模式和终止符参数,如以下示例所示:
USE "|TCP|4"
可以在设备打开后替换、添加或删除模式参数和用户终止符。
要替换 OPEN 中指定的参数,请在 USE 中指定替换值。在以下示例中,USE 命令将 OPEN 模式替换为 PSTE 模式并关闭所有用户终止符:
USE "|TCP|4":(::"PSTE")
增加或删除OPEN中指定的模式参数,用“+”号引入将要开启的模式参数,“-”号引入将要关闭的模式参数。如果不指定“+”或“-”,则新的模式参数集将替换现有模式参数。在以下示例中,USE 命令关闭 Q 模式(立即发送)并打开 W 模式(等待)。它使模式字符串的其余部分保持不变:
USE "|TCP|4":(::"-Q+W")
在以下示例中,USE 命令保留模式字符串不变并指定一组新的用户终止符。
USE "|TCP|4":(::"+":$CHAR(3,4))