文章目录
- 第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备
- 当前 `TCP` 设备
- `TCP` 设备的 `USE` 命令
第二十四章 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.TCPDeviceLocalAddr(Format:%Integer=0)
Get local IP address of current TCP device.<br>
<br>
<b>Parameters:</b> <br>
<b>Format</b> - The format of address to be returned. If this argument is omitted the default value is 0. The value could be:<br>
<ul><li>0: in text format, 'dotted' decimal string for IPV4, colon-hex address string for IPV6.</li>
<li>1: in binary format, 4 character length for IPV4, 16 characters for IPV6.</li></ul>
<b>Return:</b> <br>
Returns the local IP address associated with the TCP device. It could be in binary or text format depends on the <b>Format</b> parameter.
For binary format the IP address is in Network order.<br>
If the current device ($IO) is not a TCP device, it gets <FUNCTION> error.<br>
If the TCP device is in 'listening' state, the IP address would be all zeros (INADDR_ANY).<br>
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))