(转) 报文格式定长报文

Posted tzhyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转) 报文格式定长报文相关的知识,希望对你有一定的参考价值。

定长报文简介

       定长报文,是目前使用最广泛的报文,同时比较简单的报文格式。理解起来也较为简单,但定长报文也有自身的局限性。其中最大的问题在于,如果定义域的长度需要加长,这时候相关的配置与程序代码都需要进行相应的改变,所以维护很不方便。
       定长报文,就是使用固定的长度来表示一个信息。本报文格式常见于金融银行业,所以以银行开户场景为例说明,例如银行柜面开户时,需要记录开户人的姓名,假定用户名用30个字节来表示,这样应该就可以满足国人的需要,15个汉字长度。当然我们这里也有开户时间的需要,那我们假定为8位长度,格式为"YYYYMMDD"。这样我们在记录这些数据是可以使用30+8(38)长度报文。但是这样问题就来,如果我们后期改变了时间的格式“YYYY-MM-DD”,这样我们就不仅要调整定长的长度,还有更改程序去生成指定时间格式。举例包含两个域,如果定长报文含有多个域,并且后期更改的域格式有很多,这种情况就凸显了定长报文的局限性。
【转载使用,请注明出处:http://blog.csdn.net/mahoking

定长报文案例


简单定长报文

        以下是简单报文示例,以银行开户为例,本例选举了些基本的信息,示例即可。技术分享图片

 

       根据上表的信息我们就拼组报文了,报文如下:
“77778710001上山打老虎         12345678912345678920141022”
将这个报文发送给后台程序的时候,后台程序就根据以上表格中定义的标准,将接收到的报文进行解析,然后再进行处理。

带变长域的定长报文

技术分享图片

       假定在20140811,发生交易金额为789.80和20141012,发生交易金额为1489.80,此时得到如下的报文:
“77778710001 02014081178980           20141012148980          ”
这样通过变长域,可以循环的输出重复字段,这样服务端也可以循环展示获取到的信息








以上是关于(转) 报文格式定长报文的主要内容,如果未能解决你的问题,请参考以下文章

8583报文的使用和解析

TCP/IP 数据包报文格式(IP包TCP报头UDP报头)(转)

8583报文(转)

HTTP报文结构和内容(转)

面单打印机提示报文格式错误不是标准的Json格式怎么回事

DHCP报文格式