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 算子实际发送时会自动给发送消息的末尾添加上自己的字符结束符。