CommonTCPClient 通用TCP客户端
CommonTCPClient 算子用于启动一个 TCP 客户端,向服务端发送连接请求,建立连接后自动发送字符串信息。
算子参数
-
主机地址/host
:申请访问的 TCP server 服务器的 ip 地址。默认为 localhost ,即本机访问 。
说明:Windows 版本默认为127.0.0.1 ,即本机访问 。
-
端口/port
:申请访问的 TCP server 服务器的服务端口。默认值:2015。 -
客户端模式/client_mode
:运行模式。-
Once:该算子每次被触发,都会先同TCP服务端建立链接再发送消息请求,获得回复后直接断开链接。
-
Continous:每次触发算子运行,不会建立新的链接,而是在第一次链接的基础上继续发送消息请求。
-
-
分隔符/delimiter
:消息结束符,包含 RT 换行符 、“;”、“#”、“$”。当选择了其中某一种时,另外三种就会被视作普通字符随意使用 。客户端在接收服务端的回复消息时,会捕获第一个消息结束符之前的所有消息。注意:由于不同的通信软件、电脑系统软件、机器人操作系统软件对回车换行的定义不一致,一般不建议选择RT作为消息结束符。
-
只发送模式/only_send
:只发送模式。-
True:向服务器发送信息后,服务器不需要回复。
-
False:向服务器发送信息后,服务器需要回复,否则报错。
-
-
发送消息/send_message
:向服务端发送的字符串内容。同输入端口 send_message 的作用一致。当输入端口 send_message 没有连接时,则必须给该send_message 参数赋值。注意:在算子运行后,重新更改了port 、 client_mode 、delimiter 中的任意一个之后,如果需要生效,都必须重启 RVS 。
数据信号输入输出
输入:
-
send_message
:-
数据类型:String
-
输入内容:向服务端发送的字符串内容
-
功能演示
使用两个 RVS 窗口,一个建立TCP服务端,另一个建立TCP客户端,实现一次连接通信。
注意:可以在一个 RVS 软件界面中同时建立服务端和建立客户端,但不允许两者之间建立链接、发送申请。
步骤1:算子准备
添加 Trigger、TestTCPServer 、CommonTCPClient 算子至算子图。
步骤2:设置算子参数
RVS 软件界面1:
-
设置 Trigger 算子参数:
-
算子名称 → InitTrigger
-
类型 → InitTrigger
-
-
设置 TestTCPServer 算子参数:
-
端口 → 2015
-
连接数量 → 2
-
服务器模式 → Once
-
分隔符 → #
-
回复消息 → OK$
-
RVS 软件界面2:
-
设置 Trigger 算子参数:
-
类型 → Trigger
-
-
设置 CommonTCPClient 算子参数:
-
主机地址 → localhost
-
端口 → 2015
-
客户端模式 → Once
-
分隔符 → $
-
发送消息 → test#
-
步骤3:连接算子
-
打开第一个RVS软件界面,算子连接如下图所示。
-
重新打开一个 RVS 软件界面,算子连接如下图所示。
步骤4:运行
分别点击两个 RVS 软件的运行按钮。
运行结果
-
其中 TestTCPServer 算子所在的 XML 会自动运行一次 trigger( type 为 InitTrigger ),此时会自动触发 TestTCPServer 算子完成第一次的初始化运行,运行成功后界面显示如下图,表示 TCP 的服务端已经建立完毕。
-
在 CommonTCPClient 算子所在的 RVS 手动触发一次 Trigger 算子,运行结果如下图所示。
-
同时 TestTCPServer 算子所在的 RVS 也会有日志打印,如下所示。观察下方日志,发现 TestTCPServer 算子接收到的消息并不是 CommonTCPClient 算子发送的 test# ,而是 test#$ ,即 CommonTCPClient 算子实际发送时会自动给发送消息的末尾添加上自己的字符结束符。