TCP/UDP自动化指令详解

日常TMS工程师经常会碰到创建自动化指令,对于常用的放映设备的自动化指令,经过长时间的积累,基本上都知道如何创建。但是有时候对于不常用的设备或者不知名的品牌,即使供应商提供了TCP/IP协议,却不知如何下手,今天我们就来聊聊TCP/UDP自动化指令。

现在大部分放映服务器都支持通过网络或GPIO去执行指令,对于GPIO这一块可能老的机器用的比较多,所以今天不聊GPIO,还是谈谈通过网络执行指令。目前放映服务器都支持TCP/UDP客户端,通过TCP/IP协议,基于Socket通信去完成相应的指令执行。在指令执行的过程中,放映服务器是客户端,而受控设备是服务端,这个需要理解一下。

那么采用TCP/UDP客户端有什么区别呢?我不想讲太多的专业述语,简单解释一下,就是TCP客户端就是发送的指令到服务端执行之前需要建立连接,两者之间达成协议,然后接收指令后服务端会回复是否收到指令。而UDP客户端发送指令到服务端是不需要建立连接,发送指令到服务端也不会反馈给客户端,这就是TCP和UDP最大的区别。当然因为TCP会有连接,占用的资源也需要更多,TCP指令会比UDP指令执行要慢,但是更可靠一些。

一般设备供应商提供的TCP/IP协议里,会指出采用的是TCP或是UDP协议和端口号。端口号简单解释一下就是发送指令到服务端的门牌号,服务端对应的门牌号有不同的功能。比如我们常用的网页,就是访问服务端的80端口或者443端口,而访问21端口的时候又是FTP服务。

有了TCP或者UDP协议、端口号后,加上受控设备的IP地址,就有了完整的路径。再加上对应功能有相对应的指令码,就可以创建完成自动化指令。所以自动化指令执行的过程就是发送相应指令到目标IP的端口,目标设备收到对应的端口过来的指令以后,就会完成相应的功能,比如开关灯、切换通道或者调节音量。如果是TCP就会回复放映服务器它收到指令;如果是UDP就不会回复放映服务器只是执行相应功能。

如果能理解上面的东西,那么对于我们判断自动化指令故障就很有帮助。简单分三部分,客户端(也就是放映服务器)、网络路径、服务端(受控设备)。推荐几个小工具来判断问题,由于客户端(放映服务器)不太好判断是否故障,所以我们一般先排除网络和服务端是否正常,然后再来判断放映服务器是否有问题,判断网络是否可达可以采用Ping目标设备的IP,这个以前的文章里有提过,这里就不发图片了;判断服务端的端口是否正常工作可以采用telnet+IP地址+端口号的方式,如图

如果回复如下

就表示端口正常服务,如果回复如下

那么就表示服务端的端口服务故障,那么问题就出在受控设备上。

其实我个人常用还有另外一个工具叫TCP/UDP Socket调试工具 ,大家 可以自行度娘一下就可以下载。

以上就是这期全部内容,个人理解内容可能有不周全的地方,欢迎大家轻拍砖,希望可以帮到大家。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190219G0RORC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券