eterm协议指令解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
我们通过Socket方式与中航信系统通讯成功后,就可以发送和接收信息了,当我们把需要发送的指令按eTerm协议要求打包后,就可以发送,这个步骤比较简单,在此就不说明了,重点讲一下如何解析eTerm返回的数据。
      eTerm返回的消息经过一定处理后,返回的是一段纯文本格式数据,对于新手来讲,做到这一步并不难,难的是到这一步后看见一大串杂乱的字符不知道如何下手,怎么才能把这段字符解析成我们需要的格式呢?比如说目前流行的XML格式或是JSON格式,诸如此类。
      下面介绍一种简单的方法来解析这些文本数据,通过分析,我们发现eTerm客户端软件,就是常说的黑屏,显示出来的数据格式很整齐,我们把这个数据复制并粘贴到一个文本文件中,然后用个笨办法来数每一行有多少个字符?答案出来了吧,多试几次,我们很容易看出每一行最多只有80个字符,超过80个字符就会换行,到了这一步,已经成功一半,接下来,我们想办法把返回的文本字符串变成一个数组形式,例如split函数,ASP/C#/JAVA都有类似功能的函数,然后找到分隔符,前面说的每行80字符就会换行,那么我们就以换行符或者回车符作为分隔符,成功得到一个数组后就可以逐行分析返回的数据了,用SubString(0,2)类似的函数就可以把我们需要的元素都提取出来,最后来组成一个XML格式的规范数据集。
提供两种语言的实例,仅供参考,其他语言基本相同。
ASP:
'eterm返回原始字符串重新换行处理函数,每行80个字符,超过80字符即换行
Function NewLine(s)
s=replace(s," "," ")
s=replace(s," "," ")
s=replace(s," ","")
s=replace(s," b","")
s=replace(s," ","")
cut=""
strArr = split(s,chr(13))
     For i = 0 To (UBOUND(strArr)-1)
     If Len(strArr(i))>80 Then
       cut=cut&Left(strArr(i),80)&chr(13)&Replace(strArr(i),Left(strArr(i),80),"")&chr(13)
     Else
       cut=cut&strArr(i)&chr(13)
     End If
     Next
NewLine=cut
End Function

C#:
        /// <summary>
        /// Eterm原始字符处理函数:1过滤无效字符 2一行超过80字符自动换行
        /// </summary>
        /// <param name="str">eTerm原始字符串</param>
        /// <returns></returns>
        public static string EtermNewLine(string str)
        {
            str = str.Replace(" ", " ");
            str = str.Replace(" ", " ");
            str = str.Replace(" ", "");
            str = str.Replace(" b", "");
            str = str.Replace(" ", "");
            str = str.Replace("$", "");
            string cut = "";
            string[] strArr = str.Split('\r');
            for (int i = 0; i < strArr.Length; i++)
            {
                if (strArr.Length > 80)
                {
                    cut += strArr.Substring(0, 80) + "\r";
                    cut += strArr.Replace(strArr.Substring(0, 80), "") + "\r";
                }
                else
                {
                    //该行不足80字符用空格补足
                    cut += strArr + "\r";
                }
            }
            return cut;

        }



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/10/11/2207043.html,如需转载请自行联系原作者

目录
相关文章
|
20天前
|
XML 监控 网络协议
云深处绝影四足机器人协议学习解析
本文详细介绍并解析了云深处绝影X20四足机器人的通信协议,包括TCP服务端端口号、基于Service的请求/响应通信机制、通信帧结构、消息类型、常见的通信示例如获取状态和导航请求,以及运动控制的参数和命令。文中还提出了对协议中某些未明确说明或可能存在的问题的疑惑。
25 0
云深处绝影四足机器人协议学习解析
|
15天前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
45 2
|
21天前
|
域名解析 监控 网络协议
利用DNS协议的弱点
【8月更文挑战第17天】
34 1
|
25天前
|
安全 数据库连接 数据库
Python深度解析:上下文协议设计与应用技巧
在Python编程中,资源管理是一个常见且重要的问题。无论是文件操作、网络连接还是数据库事务,都需要确保资源在使用后能够正确地释放或恢复到初始状态。Python通过上下文管理器提供了一种优雅的方式来处理资源的获取与释放,使得代码更加简洁、安全。
|
10天前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
35 0
|
17天前
|
安全 5G 数据安全/隐私保护
|
17天前
|
网络协议 安全 网络安全
深入解析TURN协议的作用与重要性
【8月更文挑战第24天】
39 0
|
18天前
|
域名解析 网络协议 Linux
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?
|
20天前
|
自然语言处理 计算机视觉 Python
VisProg解析:根据自然语言指令解决复杂视觉任务
VisProg是一个神经符号系统,能够根据自然语言指令生成并执行Python程序来解决复杂的视觉任务,提供可解释的解决方案。
25 0
|
21天前
|
域名解析 网络协议 物联网

热门文章

最新文章

推荐镜像

更多
下一篇
DDNS